0

嘿,伙计们,我是 xamarin 表单的新手,我尝试了一个设置提醒的简单应用程序,该应用程序的一部分是检测通话结束并像真正的来电者一样生成弹出窗口。现在我尝试了相同的使用 android 编写代码并在检测到来电时记录一条消息,它就像一个魅力,但是相同的代码在 xamarin forms.Droid 中没有。我添加了所有必要的权限并使用类名注册了接收者,但我不断收到超时异常。

有什么我想念的吗?

我在机器人文件夹中的班级:-

[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);
        }

}
}

安卓清单文件:-

**<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();
        }

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

4

0 回答 0