SecurityException:给定调用程序包com.android.settings未在进程ProcessRecord中运行

时间:2012-05-13 07:37:13

标签: android settings activitygroup

我将ActivityGroup用于TAB UI,一个Tab内容是Android设置视图, 我用这种方法嵌入:

final Intent settings = new Intent(android.provider.Settings.ACTION_SETTINGS);
settings.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Window subActivity = getLocalActivityManager().startActivity("SubActivity_Settings", settings);
vSettings = subActivity.getDecorView();

它在Android 2.3.3中运行良好,但现在我必须转向Android 4.0, 不幸的是,它不适用于下面的例外情况:

05-13 07:02:36.242:E / AndroidRuntime(1118):java.lang.RuntimeException:无法恢复活动{com.android.settings / com.android.settings.Settings}:java.lang.SecurityException :给定调用程序包com.android.settings未在进程ProcessRecord中运行{414674b0 1118:com.gul.desktop / 10040}

哥们能告诉我如何解决它,以及ProcessRecord是什么?

2 个答案:

答案 0 :(得分:3)

  

我将ActivityGroup用于TAB UI

从API级别11开始正式弃用。

  

它在Android 2.3.3中运行良好

不是真的。它看起来就像它“运行良好”,但用户实际上无法更改您自己的UI无法更改的任何设置。 Android 4.0只是进一步加强了安全性。

  

哥们能告诉我如何解决它

编写您自己的用于修改设置的UI,以用于普通SDK应用可以修改的设置。或者,使用startActivity()上的Intent操作,通过android.provider.Settings启动“设置”应用。

答案 1 :(得分:0)

您收到此异常是因为在您的清单文件中,您可能已经两次或多次注册了您的活动。

代表:

<activity android:name=".MainActivity" android:label="@string/app_name"> 
                         ^^^^^^^^^^^^
     <intent-filter> 
         <action android:name="android.intent.action.MAIN" />
         <category android:name="android.intent.category.LAUNCHER" />
     </intent-filter>
 </activity>

<activity android:name=".MainActivity"> </activity>
                         ^^^^^^^^^^^^  

删除不需要的行.... 希望这对你有用..!