android 解决安全异常:权限拒绝:启动Intent,我需要什么权限?

pxq42qpu  于 2023-03-11  发布在  Android
关注(0)|答案(4)|浏览(226)

我想从app上打开play store,三星没问题,一加移动的就不行了,不知道***阿里巴巴***是哪里来的,很奇怪。

  • 异常java.lang.安全异常:权限拒绝:正在启动来自流程记录{a1 dd 30 c 15827:a2bliving.ie.a2b/u 0a 151}(pid=15827,uid=10151)的意向{ act=android.意向.操作.视图dat= http://play.google.com/... cmp=com.阿里巴巴.国际. android.应用程序.poseidon/com.阿里巴巴.android.国际.weex.活动.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());
    }
efzxgjgh

efzxgjgh1#

您需要在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>
wb1gzix0

wb1gzix02#

在那个设备上,Intent正在被修改以添加一个特定的组件(com.alibaba.intl.android.apps.poseidon/com.alibaba.android.intl.weex.activity.WeexPageActivity)。我不知道这是来自系统选择器还是其他东西。而且,它解析的Activity没有被导出。
所以,最主要的是,这是设备的一个缺陷。
但是,由于活动未导出,因此您无法启动该特定活动。

iecba09b

iecba09b3#

这不是您的应用中的漏洞,而是阿里巴巴应用中的漏洞。问题是他们声明了自己的Activity WeexPageActivity来处理http/https/文件方案,但也使其无法导出。因此,每当您的应用尝试使用其中一个方案启动Intent,而阿里巴巴应用被选中或设置为默认时,您的应用都会崩溃。

例如,如果你使用AdMob,每次用户点击广告都会发生这种情况(对我来说,最新的罪魁祸首是mxtech.videoplayer.ActivityWebBrowser)。
老实说,我不知道为什么Android不忽略说的活动,而不是崩溃或为什么其他开发人员会犯这样的错误,但这不是你的错。

jtoj6r0c

jtoj6r0c4#

这是一个很好的例子。一些其他的应用程序正在尝试处理我的Intent(他们无法处理),我的可怜的应用程序正在崩溃。谢谢,Android。
不管怎样,要修复它你需要添加

i.addCategory(Intent.CATEGORY_BROWSABLE)

如果它是您尝试打开的URL,则为您的Intent。否则,您需要指定要处理Intent的应用。

相关问题