我将 PhoneGap 从 2.9 更新到 3.1。除了一件事,一切似乎都运行良好。我使用 PhoneGap 推送插件,即使应用程序打开,我也会收到推送通知。它不会在手机顶部显示通知图标,但会振动。这在 PG 2.9 中没有发生。我缺少的配置文件中是否有设置?
编辑:我错了他们没有出现在手机顶部。如果我退出应用程序,通知会显示为好像应用程序已关闭。
GCMIntentService 已删除该isInForeground
方法。在 Eclipse 中转到
Project > src > com.plugin.gcm > GCMIntentService.java
并添加此代码:
public boolean isInForeground()
{
ActivityManager activityManager = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> services = activityManager
.getRunningTasks(Integer.MAX_VALUE);
if (services.get(0).topActivity.getPackageName().toString().equalsIgnoreCase(getApplicationContext().getPackageName().toString()))
return true;
return false;
}
然后将 onMessage 方法更改为如下所示:
protected void onMessage(Context context, Intent intent) {
Log.d(TAG, "onMessage - context: " + context);
// Extract the payload from the message
Bundle extras = intent.getExtras();
if (extras != null)
{
boolean foreground = this.isInForeground();
PushPlugin.sendExtras(extras);
// Send a notification if there is a message
if (extras.getString("message").length() != 0 && !foreground) {
createNotification(context, extras);
}
}
}
在 AndroidManifest.xml 中,您需要添加以下权限:
<uses-permission android:name="android.permission.GET_TASKS" />