xamarin形式的广播接收器以检测来电

时间:2018-09-01 06:19:19

标签: android forms xamarin broadcastreceiver incoming-call

伙计们,我是xamarin表单的新手,我尝试了一个简单的应用程序来设置提醒,该应用程序的一部分是检测呼叫结束并像真正的呼叫者一样生成弹出窗口。在android上尝试了相同的代码,并在检测到传入呼叫时丢失了一条消息,并且它像一个超级按钮一样工作,但是xamarin形式中没有相同的代码.Droid。我已添加了所有必要的权限并向接收者注册了接收器班级名称,但我仍然收到超时异常。

有什么我想念的吗?

我的类在droid foler中:-

[BroadcastReceiver(Enabled =true,Exported = false)]
[IntentFilter(new[] { "android.Content.intent.PHONE_STATE"})]

public class IncomingCallReceiver : BroadcastReceiver
{


    public override void OnReceive(Context context, Intent intent)
    {
        try
        {
            Console.WriteLine("Receiver start");
            // Toast.MakeText(context, " Receiver start ",  ToastLength.Long).Show();
        }
        catch (Exception e)
        {
            Console.WriteLine("Receiver start ex " + e.StackTrace);
        }

}
}

android清单文件:-

**<application android:label="IncomingCall.Android">
<receiver android:name="com.companyname.IncomingCall.IncomingCallReceiver">
  <intent-filter>
    <action android:name="android.intent.action.PHONE_STATE"/>
  </intent-filter>
</receiver>

  

MainActivity.cs文件:-

以下两个方法已在我的MainActivity.cs中声明

  protected override void OnResume()
        {
            base.OnResume();
            RegisterReceiver(receiver, new IntentFilter("com.companyname.IncomingCall"));
            // Code omitted for clarity

        }
        protected override void  OnPause()
        {
            UnregisterReceiver(receiver);
            // Code omitted for clarity
            base.OnPause();
        }

有人可以指出我的错在哪里吗?

0 个答案:

没有答案