android - PendingIntent 未启动应用程序

标签 android android-intent android-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 。

编辑: 这是其他应用程序 list 中的 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>

编辑2: 这是我根据通知采取行动时得到的日志

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

最佳答案

David Suppiger 发现了它!

我不小心传递了我的 GalleryFragment 而不是我的 GalleryActivity。现在工作很好!泰

关于android - PendingIntent 未启动应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10254407/

相关文章:

android - alarmmanager 2次

android - Android-如何以编程方式为FCM发送的 future 推送通知设置通知声音

Android ScrollView 不起作用

android - GreenDao 选择单个列?

android - 防止 Android WebView 缓存数据

java - 打开 URL 的 Intent 不适用于一个应用程序,但适用于另一个应用程序

android - 使用显式 Intent 的 android 进程间通信的安全性

android - 如何使数组适配器中的 Intent.ACTION_CALL android 面向 Activity 未找到异常

android - requestLocationUpdates with PendingIntent 和 Broadcast - 我得到什么广播

android - 单击通知时无法获取意向消息