如何以编程方式在Infinix手机中启动受保护的应用程序活动?



我正在尝试以编程方式将我的应用程序检查为 Infinix 手机中的受保护应用程序.. 但这似乎是不可能的,所以我正在尝试启动 XManager 中存在的受保护应用程序活动>> 设置>>受保护的应用程序

我成功地通过这段代码打开了XManager

try {
startActivity(new Intent().setClassName("com.transsion.mobilebutler",
"com.transsion.mobilebutler.MainActivity"));
} catch (Exception e) {
Log.d("tag", "e " + e.toString());
}

我无法以编程方式执行任何其他操作

当我尝试通过此代码启动设置活动时

try {
startActivity(new Intent().setComponent(new ComponentName("com.transsion.mobilebutler",
"com.transsion.mobilebutler.SettingsActivity")));
} catch (Exception ex) {
Log.d("tag", "ex " + ex.toString());
}

我得到了这个例外

java.lang.SecurityException: Permission Denial: starting Intent

我也尝试直接启动受保护的应用程序,但再次得到相同的Excepion

try {
Intent intent = new Intent();
intent.setClassName("com.transsion.mobilebutler", 
"com.transsion.mobilebutler.applicationmanager.view.activities.MemoryAccelerateWhitelistActivity");
startActivity(intent);
} catch (Exception e) {
Log.d("tag", "e " + e.toString());

更新

此异常的一些答案建议将android:exported="true"添加到清单中 当我添加活动时,我收到未解决的类错误

<activity android:name="com.transsion.mobilebutler.SettingsActivity" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
</intent-filter>
</activity>

有没有办法解决这个问题?

你显然不能这样做。您收到"权限被拒绝"例外的原因是您尝试启动的Activity未"导出"(即:无法由其所属的应用程序以外的应用程序启动(。

您只能启动主设置屏幕。允许任何应用程序启动此功能。"受保护的应用程序"的特定设置屏幕只能由设置应用程序本身启动。

无需对应用中的任何内容设置android:exported="true",因为会引发异常,因为未导出您尝试启动Activity

最新更新