2017-04-18 62 views
1

我看到和使用的这个链接:Creating And Scheduling Alarms Using AlarmManager In AndroidAndroid中(C#)开始AlarmManager

现在我有这样的代码:

namespace AlarmManage 
{ 
    public class MyBroadcastReceiver : BroadcastReceiver 
    { 
     public override void OnReceive(Context context, Intent intent) 
     { 
      Toast.MakeText(context, "Time Up... Now Vibrating !!!", 
        ToastLength.Long).Show(); 
      Vibrator vibrator = (Vibrator)context 
        .GetSystemService(Context.VibratorService); 
      vibrator.Vibrate(2000); 
     } 
    } 
} 

public void startAlertAtParticularTime() 
{ 
    // alarm first vibrate at 14 hrs and 40 min and repeat itself at ONE_HOUR interval 
    intent = new Intent(this, typeof(MyBroadcastReceiver)); 
    pendingIntent = PendingIntent.GetBroadcast(
      this, 280192, intent, PendingIntentFlags.CancelCurrent); 
    Java.Util.Calendar calendar = Java.Util.Calendar.Instance; 
    calendar.TimeInMillis = Java.Lang.JavaSystem.CurrentTimeMillis(); 
    calendar.Set(Java.Util.CalendarField.HourOfDay, 14); 
    calendar.Set(Java.Util.CalendarField.Minute, 49); 
    alarmManager = (AlarmManager)GetSystemService(AlarmService); 
    alarmManager.SetRepeating(AlarmType.RtcWakeup, calendar.TimeInMillis, 
      AlarmManager.IntervalHour, pendingIntent); 
    Toast.MakeText(this, "Alarm will vibrate at time specified", ToastLength.Long).Show(); 
} 

我还设置 “SET-ALARM” 的清单和 “VIBRATE”。

我的问题:我没有看到输出“时间最多......现在振动!

回答

1

我认为问题是,你没有成功申报你的MyBroadcastReceiver,在xamarin,我们可以使用:

[BroadcastReceiver(Enabled = true)] 

宣布该广播这就像宣称它在传统Android清单是这样的:

<receiver android:name="MyBroadcastReceiver" /> 

所以,MyBroadcastReceiver应该是李柯本:

[BroadcastReceiver(Enabled = true)] 
public class MyBroadcastReceiver : BroadcastReceiver 
{ 
    public override void OnReceive(Context context, Intent intent) 
    { 
     Toast.MakeText(context, "Time Up... Now Vibrating !!!", 
       ToastLength.Long).Show(); 
     Vibrator vibrator = (Vibrator)context 
       .GetSystemService(Context.VibratorService); 
     vibrator.Vibrate(2000); 
    } 
} 

现在你可以敬酒:“时间最多......现在振动!!!”