我正在Xamarin.Android做一个android项目。我有android清单的问题。我想通过使用PendingIntent.GetBroadcast为我的Notification ContextIntent注册接收器。为了触发OnReceive广播,我必须在我的android.manifest中明确注册接收器。但是......它看不到我的班级和package的名字。

我尝试删除.idle文件夹并再次构建。我也使无效的缓存失效并重新启动了JetBrains Rider。它仍然不起作用。 我没有碰到package的名字 "PPCAndroid.PPCAndroid.JobServices.StartWorkReceiver" JobServices是一个文件夹,我保留了StartWorkReceiver类。 该类的命名空间是:"PPCAndroid.JobServices" 我也尝试过我的接收器名称值,如下所示:

PPCAndroid.PPCAndroid.JobServices.StartWorkReceiver
PPCAndroid.JobServices.StartWorkReceiver
.JobServices.StartWorkReceiver
.StartWorkReceiver

这是代码:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      android:versionCode="1" 
      android:versionName="1.0" 
      package="PPCAndroid.PPCAndroid">
<uses-sdk android:minSdkVersion="24" android:targetSdkVersion="27" />

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"     
/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" 
/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>

<application android:allowBackup="true" android:label="@string/app_name" 
android:supportsRtl="true" android:theme="@style/MyCustomTheme">
<receiver
       android:name="PPCAndroid.PPCAndroid.JobServices.StartWorkReceiver"
        android:enabled="true"
        android:exported="false" >
</receiver>
</application>

</manifest>

我希望我的android清单能够看到StartWorkReceiver类。 现在我收到这样的错误:Unresolved package 'PPCAndroid'

分析解答

使用Xamarin,您还可以使用属性。看看BroadcastReceiverAttribute (文档)。

Generates a /manifest/application/receiver element within AndroidManifest.xml.