我正在尝试将推送通知用于在Worklight 6.2中编写的Android环境应用程序。我已经让应用程序接收推送通知,但是当我点击状态栏中的通知时,它会清除通知但不启动应用程序。
我在这里查看了答案IBM Worklight 5.0.6.1 - Not getting Push Notifications when phone/app is closed,但是将app_name字符串更改回应用程序的原始名称,正如接受的答案所示,不会导致应用程序启动。我还尝试了另一个注释建议,从app描述符中删除displayName中的嵌入空格,这也没有用。
我看过logcat并且没有看到任何消息表明它找不到要启动的应用程序。我希望那里的东西会给我一个暗示它正在寻找什么,但没有运气。
是否有其他设置已经不同步,以便点击通知不启动应用程序?我自己找不到任何其他东西(可能因为它不存在)。
由于
答案 0 :(得分:1)
在回答以下问题时,请参阅我的解释。它还提供了一个解决方案:App not opened when clicking on message in notification area
复制/粘贴相关文字:
res \ values \ strings.xml中的app_name
值在内部用于创建Intent对象。因此,当应用程序关闭且GCMIntentService收到消息时,它会创建一个意图,其操作为<packagename>.<app_name>
,并将其发送到通知服务,以在通知栏中显示通知。
这是AndroidManifest.xml中使用的意图名称,表示必须在点击通知时启动应用程序:
<activity android:name=".PushNotifications" android:label="@string/app_name" android:configChanges="orientation|keyboardHidden|screenSize" android:launchMode="singleTask" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:screenOrientation="sensor">
....
<intent-filter>
<action android:name="com.PushNotifications.PushNotifications.NOTIFICATION"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
现在,如果将app_name
更改为任何其他字符串,则会在内部将意图创建为com.PushNotifications.<new_name>
。
但AndroidManifest.xml仍然具有例如com.PushNotifications.PushNotifications
(在示例应用程序的情况下),因此应用程序未启动,因为意图操作不同。
要使用其他名称显示应用程序,请按以下步骤操作:
在AndroidManifest.xml中,使用新字符串名称
修改标签<application android:label="@string/app_new_name" android:icon="@drawable/icon">
<activity android:name=".PushNotifications" android:label="@string/app_new_name"...