gpt4 book ai didi

android - 如果我使用相同的签名签名,是否可以接收另一个 Android 应用程序的 C2DM Intent ?

转载 作者:太空宇宙 更新时间:2023-11-03 11:16:52 25 4
gpt4 key购买 nike

我安装了一个接收 C2DM Intent 的应用程序 (com.example.myapp)。我想借助它在单独的应用程序 (com.example.myapp2) 中执行我自己的处理以响应这些 Intent。根据this answer , C2DM 客户端系统查找:

broadcast receivers for Intent:com.google.android.c2dm.intent.REGISTRATION

That have the permission:.permission.C2D_MESSAGE

在原始应用程序中,定义并使用了以下权限,as specified in the C2DM Documentation

  <!-- Only this application can receive the messages and registration result --> 
<permission android:name="com.example.myapp.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.example.myapp.permission.C2D_MESSAGE" />

这是 com.example.myapp2 的 list ,我也在其中使用了该权限:

<manifest package="com.example.myapp2" ...>

<!-- Only this application can receive the messages and registration result -->
<uses-permission android:name="com.example.myapp.permission.C2D_MESSAGE" />

<!-- This app has permission to register and receive message -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

<!-- Send the registration id to the server -->
<uses-permission android:name="android.permission.INTERNET" />

<application...>
<!-- Only C2DM servers can send messages for the app. If permission is not set - any other app can generate it -->
<receiver android:name=".C2DMReceiver" android:permission="com.google.android.c2dm.permission.SEND">
<!-- Receive the actual message -->
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.example.myapp" />
<category android:name="com.example.myapp2" />
</intent-filter>
</receiver>
...
</application>
...
</manifest>

我的 C2DMReceivercom.example.myapp2.C2DMReceiver。请注意,我没有监听 com.google.android.c2dm.intent.REGISTRATION Intent,因为我不关心注册。我只关心接收 com.example.myapp 已经接收的 Intent。在我针对 com.google.android.c2dm.intent.RECEIVE IntentIntentFilter 中,我过滤了两个 com.example。 myappcom.example.myapp2 category 因为 C2DM 没有具体说明 C2DM Intent 看起来像。如有任何帮助,我们将不胜感激。

我已验证 com.example.myapp2 具有 com.example.myapp.permission.C2D_MESSAGE 权限。如果我使用调试 key 运行,我没有它,但如果我使用发布 key 运行,我有它。显然,我正在使用发布 key 在我的设备上运行该版本。

com.example.myapp 收到 C2DM Intent com.example.myapp2 没有收到它。关于如何调试或如何让它工作的任何想法?有可能吗?

最佳答案

据我所知这是不可能的。当应用程序注册 C2DM 消息时,它会生成一个基于应用程序包名称的 key ,并且您每台设备只能拥有一个。

如果您使用相同的签名,那么我假设您控制这两个应用程序,如果是这样,您必须让接收 C2DM 消息的应用程序通过它们都拥有的服务将数据传输到第二个应用程序访问权限。

关于android - 如果我使用相同的签名签名,是否可以接收另一个 Android 应用程序的 C2DM Intent ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15319010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com