我想从应用程序打开游戏商店。它在三星很好,但它在OnePlus手机中失败了。 我不知道 alibaba 来自哪里。这很奇怪。
异常java.lang.SecurityException:权限拒绝:启动Intent {act = android.intent.action.VIEW dat = http://play.google.com/ ... cmp = com.alibaba.intl.android.apps。来自ProcessRecord {a1dd30c 15827:a2bliving.ie.a2b / u0a151}(pid = 15827,uid = 10151)的poseidon / com.alibaba.android.intl.weex.activity.WeexPageActivity}未从uid 10156导出
代码:
private static final String PLAY_STORE_LINK = "http://play.google.com/store/apps/details?id=%s&hl=en";
public void openUpdateLink() {
context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(getExternalAppLink())));
}
public String getExternalAppLink() {
return String.format(PLAY_STORE_LINK, context.getPackageName());
}
答案 0 :(得分:2)
您需要在AndroidManifest.xml文件中设置android:exported="true"
<activity
android:name="com.anurag.example.MainActivity"
android:label="Demo"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" >
</action>
</intent-filter>
</activity>
答案 1 :(得分:1)
这不是您的应用程序中的错误,而是阿里巴巴应用程序中的错误。发生的事情是他们声明了他们的活动 WeexPageActivity 来处理 http/https/file 方案,但也没有将其导出。因此,每次您的应用尝试使用这些方案之一启动 Intent 并且选择了阿里巴巴应用或更糟的是,它被设置为默认应用时,您的应用就会崩溃。
例如,如果您使用 AdMob,每次用户点击广告时都会发生这种情况(对我来说,最新的罪魁祸首应用是 mxtech.videoplayer.ActivityWebBrowser)。
老实说,我不知道为什么 Android 不忽略所述活动而不是崩溃,或者为什么其他开发人员会犯所述错误,但这不是您的错。
答案 2 :(得分:0)
在该设备上,Intent
被修改为添加特定组件(com.alibaba.intl.android.apps.poseidon/com.alibaba.android.intl.weex.activity.WeexPageActivity
)。我不知道这是来自系统选择器还是其他东西。而且,它解析的活动不会被导出。
所以,大多数情况下,这是该设备中的一个错误。
但是,由于未导出活动,因此无法启动该特定活动。