代码之家  ›  专栏  ›  技术社区  ›  Islam Ahmed

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

  •  3
  • Islam Ahmed  · 技术社区  · 6 年前

    我正在尝试在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
    

    我也试着直接启动受保护的应用程序,但我还是得到了同样的好处。

    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>
    

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

    1 回复  |  直到 6 年前
        1
  •  2
  •   David Wasser    6 年前

    显然你不能这样做。您获得“权限被拒绝”例外的原因是 Activity 您尝试启动的不是“导出的”(即:不能由它所属的应用程序以外的应用程序启动)。

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

    你不需要设置 android:exported="true" 在应用程序中的任何内容上,因为引发异常的原因是 活动 您试图启动的未导出。