伙计们,我是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();
}
有人可以指出我的错在哪里吗?