【问题标题】:Xamarin Push Notification Firebase Android 12 (exported)Xamarin 推送通知 Firebase Android 12(已导出)
【发布时间】:2022-06-30 23:57:42
【问题描述】:

我想从包 Github 中实现 GettingStarted。 到目前为止,如果我像教程中那样做所有事情,我得到错误“定位 S+(版本 31 及更高版本)要求在存在意图过滤器时定义 android:exported 的显式值]”对于 crc640921eac73192168e.PNMessagingService。这意味着我必须使用属性exported=true 或false 将代码添加到Manifest.xml。但我不知道我必须在 XML 中粘贴哪些代码才能使其正常工作?在另一个用户Stackoverflow 的进一步问题中,他得到了设置exported = false 的答案,但他没有说确切的代码必须是哪个,也许可以帮助我:D

【问题讨论】:

    标签: android firebase xamarin push-notification


    【解决方案1】:

    将 this 放入AndroidManifest.xml 文件的接收者中。这是这个插件的接收器。你需要把它放在<application> 标签内。

    <receiver android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver" android:exported="false" />
        <receiver android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND">
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
                <category android:name="${applicationId}" />
            </intent-filter>
        </receiver>
    

    更多详情,您可以查看该插件示例的AndroidManifest.xml

    【讨论】:

    • 您好,我之前已经这样做了:D 但我仍然遇到同样的错误。这可能是 VS 2022 中的错误吗?
    • Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand Fehler ADB0010: Mono.AndroidTools.InstallFailedException: Unexpected install output: Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: installPackageLI: /data/app/vmdl1225665538.tmp/.在二进制 XML 文件第 #46 行):crc640921eac73192168e.PNMessagingService:定位 S+(版本 31 及更高版本)要求在存在意图过滤器时定义 android:exported 的显式值]
    • 你下载了这个插件的示例代码吗?你有同样的错误吗?
    • 下载了示例,也得到了错误:ADB0010: Mono.AndroidTools.InstallFailedException: Unexpected install output: Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: Failed parse during installPackageLI: /data/app/vmdl1405017622.tmp/base。 apk(在二进制 XML 文件第 35 行):crc640921eac73192168e.PNMessagingService:定位 S+(版本 31 及更高版本)要求在存在意图过滤器时定义 android:exported 的显式值]
    【解决方案2】:

    对于那些仍然有这个问题的人(我很难找到答案),实际上这个问题很容易通过在标签上添加 Exported = false 来解决(它可能在服务、活动等中)

    例子:

    [Service (Exported=false)]
    [IntentFilter(new[] { "com.google.firebase.MESSAGING_EVENT" })]
       or
    [Activity (Exported=false)]
    [IntentFilter(new[] { Intent.ActionView }, Categories = new[] { Intent.CategoryDefault, Intent.CategoryBrowsable }]
    

    用于将其添加到 Android Manifest 中(只需要上面或下面之一)

    <service
    android:name="crc64620eeeaa876b9f26.MessagingServiceHandler" 
    android:exported="false">
        <intent-filter>
           <action android:name="com.google.firebase.MESSAGING_EVENT" />   
        </intent-filter>
    

    希望对您有所帮助! 莱因哈德·苏尔

    【讨论】:

      【解决方案3】:

      对于那些仍然有这个问题的人(我很难找到答案),实际上这个问题很容易通过在标签上添加 Exported = false 来解决(它可能在服务、活动等中)

      例子:

      [Service (Exported=false)]
      [IntentFilter(new[] { "com.google.firebase.MESSAGING_EVENT" })]
         or
      [Activity (Exported=false)]
      [IntentFilter(new[] { Intent.ActionView }, Categories = new[] { Intent.CategoryDefault, Intent.CategoryBrowsable }]
      

      用于将其添加到 Android Manifest 中(只需要上面或下面之一)

      <service
      android:name="crc64620eeeaa876b9f26.MessagingServiceHandler" 
      android:exported="false">
          <intent-filter>
             <action android:name="com.google.firebase.MESSAGING_EVENT" />   
          </intent-filter>
      

      希望对您有所帮助! 莱因哈德·苏尔

      【讨论】:

        猜你喜欢
        • 2022-07-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多