我正在尝试将我的应用程序作为Infinix手机中的一个受保护的应用程序进行编程。但这似乎是不可能的,因此,我试图启动XManager >> Settings >>受保护应用程序中存在的受保护应用程序活动。
我成功地通过以下代码打开了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此外,我还试图直接启动受保护的应用程序,但我还是得到了同样的例外。
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>有办法解决这个问题吗?
发布于 2018-10-03 13:26:06
显然你不能这么做。您获得“拒绝权限”例外的原因是,您试图启动的Activity不是“导出”的(即:它所属的应用程序不能启动)。
您只能启动主设置屏幕。任何应用程序都可以启动这个程序。“受保护的应用程序”的特定设置屏幕只能由设置应用程序本身启动。
您不需要在应用程序中的任何东西上设置android:exported="true",因为要启动的Activity没有导出,所以会抛出异常。
https://stackoverflow.com/questions/52623051
复制相似问题