2
我有一個服務正在運行,它會在通知欄上發出一個特定事件的通知。在該通知中,我設置了一個PendingIntent來啓動另一個應用程序。出於某種原因,當我對通知採取行動時,它不會啓動其他應用程序。這裏是我創建PendingIntent的代碼。PendingIntent沒有啓動應用程序
private PendingIntent externalAppStartIntent(LaunchInfo launchInfo) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setClassName(launchInfo.getPackageName(), launchInfo.getActivityName());
intent.setData(launchInfo.toUri());
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
return PendingIntent.getActivity(this, ZONE_SERVICE_START_EXTERNAL_APP, intent,
PendingIntent.FLAG_CANCEL_CURRENT);
}
我能夠使用像我這樣的代碼中的其他地方的常規Intent啓動應用程序。
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setClassName(packageName, activityName);
intent.setData(data);
try {
startActivity(intent);
} catch (ActivityNotFoundException e) {
ZoneUtils.launchMarketDialog(getActivity(), packageName);
}
我已經檢查,以確保我在這兩種情況下發送的變量的值是相同的。
請注意,我試圖在代碼所在的另一個應用程序之外的另一個應用程序中啓動一個Activity。
編輯: 以下是來自其他應用程序清單的活動定義。
<activity
android:name=".ui.GalleryActivity"
android:configChanges="orientation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="join"
android:path="/"
android:scheme="mgp" />
</intent-filter>
</activity>
EDIT2: 這裏是日誌我是說我採取行動的通知
04-20 19:05:59.151: I/ActivityManager(193): START {act=android.intent.action.VIEW cmp=com.brockoli.magnet.photoapp/.ui.GalleryFragment bnds=[128,418][720,546]} from pid -1
您是否檢查了目標活動的[permissions](http://developer.android.com/reference/android/app/Activity.html#Permissions)?你可以開始嗎? – 2012-04-20 22:46:18
我沒有設置活動的權限。我可以通過啓動一個意圖從我的應用程序的其他地方啓動該活動。 – brockoli 2012-04-20 22:56:09
也沒有在我的日誌中得到SecurityException,所以我猜測不是這樣。 – brockoli 2012-04-20 22:56:47