爲了試圖從我的後臺服務(相同包)中找到啓動活動的方法,我停留在10級API或更低級別(嘗試在2.3.3中)不斷抱怨權限爲系統權限的STATUS_BAR。從API服務啓動活動級別<10
我嘗試了各種方法,但沒有成功。
清單中的活動定義:
<activity
android:name="com.company.app.ui.ViewActivity"
android:label="@string/title_activity"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:screenOrientation="portrait"
android:launchMode="singleInstance"
android:stateNotNeeded="true"
android:exported="true">
<intent-filter>
<action android:name="com.company.app.action.START_VIEW" />
<data android:scheme="package" android:pathPattern="com.company.app"/>
</intent-filter>
</activity>
代碼:
Intent it = new Intent("com.company.app.action.START_VIEW");
it.setComponent(new ComponentName(getPackageName(), ViewActivity.class.getName()));
it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplicationContext().startActivity(it);
備選:
Intent intent = new Intent(this, ViewActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
都失敗與例外:
03-16 14:10:07.583: E/MyApp(367): java.lang.SecurityException: Permission Denial: starting Intent { act=com.company.app.action.START_DDM flg=0x10000000 cmp=com.company.app/.ViewActivity } from ProcessRecord{43db3d88 367:com.company.app/10029} (pid=367, uid=10029) requires android.permission.STATUS_BAR
03-16 14:10:07.703: E/MyApp(367): android.os.Parcel.readException(Parcel.java:1218)
03-16 14:10:07.793: E/MyApp(367): android.os.Parcel.readException(Parcel.java:1206)
03-16 14:10:07.864: E/MyApp(367): android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1214)
03-16 14:10:07.944: E/MyApp(367): android.app.Instrumentation.execStartActivity(Instrumentation.java:1373)
03-16 14:10:08.044: E/MyApp(367): android.app.ApplicationContext.startActivity(ApplicationContext.java:555)
03-16 14:10:08.174: E/MyApp(367): android.content.ContextWrapper.startActivity(ContextWrapper.java:248)
03-16 14:10:08.244: E/MyApp(367): com.company.app.service.MyService.showHideView(MyService.java:616)
03-16 14:10:08.324: E/MyApp(367): com.company.app.service.MyServiceThread$1.handleMessage(MyServiceThread.java:99)
03-16 14:10:08.394: E/MyApp(367): android.os.Handler.dispatchMessage(Handler.java:99)
03-16 14:10:08.473: E/MyApp(367): com.company.app.service.MyServiceThread.callShowHideView(MyServiceThread.java:231)
03-16 14:10:08.563: E/MyApp(367): com.company.app.service.MyServiceThread.run(MyServiceThread.java:205)
更新:發佈解決方案下面...感謝Android的愚蠢的錯誤消息!
我們真的需要等等等等,以確定您的問題 – Pragnani 2013-03-16 10:26:03
請張貼滿logcat的.. – 2013-03-16 10:28:25
加滿異常跟蹤的要求。謝謝。 – George 2013-03-16 11:53:05