gpt4 book ai didi

android - 安全异常 : Not allowed to start an Activity Intent

转载 作者:行者123 更新时间:2023-11-29 19:09:30 27 4
gpt4 key购买 nike

我们正准备发布我们的免安装应用程序,但是,在 Google Play 的 AIA 开发轨道中运行我们的 AIA 应用程序时遇到了问题。
我们的 AIA 应用程序在 Android Studio 中运行完美,但当尝试在 Play 商店的真实设备上运行时会出现此问题。
感谢您提供任何帮助。

问题错误:

java.lang.SecurityException: Not allowed to start activity Intent { act=android.intent.action.VIEW cat=[android.intent.category.BROWSABLE] dat=https://www.example.com/... pkg=com.example (has extras) }

我们的 AIA 设置为运行 ACTION_VIEW Intent,以打开应用其他功能中列出的 Activities,这与 Google 提供的示例非常相似。
当我们的应用程序通过 URL 打开时,它会被发送到我们的基本功能中的路由器 Activity 来处理解析 URI 并打开适当的 Activity 来处理 URL 路径。

  • 基本功能 -- UrlRouterActivity
  • 特征 1 -- Feature1Activity

基本功能 list :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.rentpath.lib">

<application>
<activity
android:name=".activity.UrlRouterActivity"
android:noHistory="true"
android:launchMode="singleInstance"
android:theme="@style/Theme.AppCompat.NoDisplay">
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />

<data android:scheme="http" />
<data android:scheme="https" />
<data android:host="www.example.com" />
<data android:pathPrefix="/path" />
</intent-filter>
</activity>
</application>

</manifest>

特征 1 list :

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.rentpath.lib.pdp">

<application>
<activity
android:name=".activity.Feature1Activity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />

<data android:scheme="@string/filter_scheme_secure" /> <!-- String resource for https -->
<data android:host="www.example.com" />
<data android:pathPrefix="/action_feature_1" />
</intent-filter>
<intent-filter>
<action android:name="action_feature_1"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>

我们的路由器 Activity 获取 URI,解构 URL 参数并构建一个 Intent,如下所示:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https:www.example.com/action_feature_1?some_param=some_value"));
intent.addCategory(Intent.CATEGORY_BROWSABLE);
intent.setPackage(context.getPackageName());
startActivity(intent);

启动此 Activity 会导致顶部提到的异常。
同样,这仅在从 Google Play 的开发轨道运行 AIA 应用程序时发生。
从 Android Studio 运行 AIA 应用程序时不会发生。

附加信息:

Android Studio 3.0 Beta 2
Gradle plugin: 3.0.0-beta2
Gradle wrapper distribution: 4.1-rc-1

最佳答案

事实证明,当从 Google Play 运行 AIA 应用程序时,字符串引用不能很好地与 list 配合使用。在方案上显式设置字符串值可解决此问题。

替换

<data android:scheme="@string/filter_scheme_secure" /> 

<data android:scheme="https" /> 

解决问题。

关于android - 安全异常 : Not allowed to start an Activity Intent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45865107/

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