我试图通过意图(保护级别:危险)将信息从应用程序A发送到应用程序B.我不能使用其他保护级别,因为这两个应用程序将使用不同的证书。
为此,我创建了两个示例应用程序。但我无法向其他应用程序发送获得许可的意图。
adb-logcat失败后:
W / BroadcastQueue:权限拒绝:接收Intent { act = ch.christofbuechi.android.mybroadcastRequest flg = 0x10(有额外的) } ch.christofbuechi.httpexampleb / .UserCheckReceiverRequest需要 ch.christofbuechi.httpB_perm由于发件人 ch.christofbuechi.httpexamplea
发件人有以下属性:
<uses-permission android:name="ch.christofbuechi.httpB_perm"/>
在清单中
private void checkUserHA654321() {
Log.d("BroadcastQueue", "send: checkUserHA654321");
Intent intent = new Intent();
intent.setAction("ch.christofbuechi.android.mybroadcastRequest");
intent.putExtra("User", "HA654321");
sendBroadcast(intent, "ch.christofbuechi.httpB_perm");
}
作为活动内部的行动
Receiver具有以下属性:
<permission android:name="ch.christofbuechi.httpB_perm" android:protectionLevel="dangerous"></permission>
和
<receiver android:name=".UserCheckReceiverRequest"
android:permission="ch.christofbuechi.httpB_perm">
<intent-filter>
<action android:name="ch.christofbuechi.android.mybroadcastRequest" />
</intent-filter>
</receiver>
在清单中
其实我不知道我的问题在哪里。我已经研究了关于这个主题的其他stackoverflow帖子。也许你也可以帮助我? THX
可以从这里完整地获取代码: (使样品尽可能简单) https://github.com/ChristofBuechi/appswitch_sample
答案 0 :(得分:2)
我正在尝试通过意图(protectionlevel:dangerous)将信息从应用程序A发送到应用程序B.
仅当应用程序B 100%保证在应用程序A之前安装时才会起作用。
adb-logcat失败后:
这表明应用程序B(接收方)是在应用程序A(发送方)之后安装的。
<uses-permission>
会忽略Android不知道的权限名称。您必须先拥有<permission>
元素才能定义名称。您可能想要让两个应用定义相同的<permission>
,但这在Android 5.0+上不起作用,因为拥有多个应用(由不同的签名密钥签名)定义相同的权限会打开一些相当令人讨厌的安全性问题。