Android 谷歌云消息-通知USB行为
对不起,我的英语不是很好。。。无论如何 我有一个android应用程序,它使用GCM接收推送通知 步骤: 1-用户单击登录按钮 2-Android应用程序保存注册ID正在工作 3-发送到WebService并放入数据库工作 4-服务器应用程序C发送所选注册id的消息 5-设备正常接收通知,但仅当设备已连接时 关于USB*问题* 如果我没有在usb上连接设备,我会收到通知,但带有 空白消息 我被封锁了一个星期。。有人能帮我吗?请 公共类GCMNotificationEntService扩展了IntentService{Android 谷歌云消息-通知USB行为,android,push-notification,google-cloud-messaging,android-notifications,Android,Push Notification,Google Cloud Messaging,Android Notifications,对不起,我的英语不是很好。。。无论如何 我有一个android应用程序,它使用GCM接收推送通知 步骤: 1-用户单击登录按钮 2-Android应用程序保存注册ID正在工作 3-发送到WebService并放入数据库工作 4-服务器应用程序C发送所选注册id的消息 5-设备正常接收通知,但仅当设备已连接时 关于USB*问题* 如果我没有在usb上连接设备,我会收到通知,但带有 空白消息 我被封锁了一个星期。。有人能帮我吗?请 公共类GCMNotificationEntService扩展了Int
public static int NOTIFICATION_ID = 1;
private NotificationManager mNotificationManager;
NotificationCompat.Builder builder;
public GCMNotificationIntentService() {
super("GcmIntentService");
}
public static final String TAG = "GCMNotificationIntentService";
@Override
protected void onHandleIntent(Intent intent) {
Bundle extras = intent.getExtras();
GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this);
String messageType = gcm.getMessageType(intent);
if (!extras.isEmpty()) {
if (GoogleCloudMessaging.MESSAGE_TYPE_SEND_ERROR
.equals(messageType)) {
sendNotification("Send error: " + extras.toString());
} else if (GoogleCloudMessaging.MESSAGE_TYPE_DELETED
.equals(messageType)) {
sendNotification("Deleted messages on server: "
+ extras.toString());
} else if (GoogleCloudMessaging.MESSAGE_TYPE_MESSAGE
.equals(messageType)) {
for (int i = 0; i < 3; i++) {
Log.i(TAG,
"Working... " + (i + 1) + "/5 @ "
+ SystemClock.elapsedRealtime());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
Log.i(TAG, "Completed work @ " + SystemClock.elapsedRealtime());
sendNotification(""+ extras.get(Config.MESSAGE_KEY));
Log.i(TAG, "Received: " + extras.toString());
}
}
GcmBroadcastReceiver.completeWakefulIntent(intent);
}
private void sendNotification(String msg) {
Log.d(TAG, "Preparing to send notification...: " + msg);
mNotificationManager = (NotificationManager) this
.getSystemService(Context.NOTIFICATION_SERVICE);
long[] pattern = {500,500,500,500,500,500,500,500,500};
Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Uri alarmSound2 = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.mario);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
new Intent(this, lucasbergamo.minha_granna.Android.ac_Login.class), 0);
String date = DateFormat.getDateTimeInstance().format(new Date());
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
this)
.setSmallIcon(R.drawable.coin_notification)
.setContentTitle("Minha Granna - ")
.setAutoCancel(true)
.setLights(Color.BLUE, 500, 500)
.setVibrate(pattern)
.setSound(alarmSound2)
.setStyle(new NotificationCompat.InboxStyle())
.setContentText(msg);
mBuilder.setContentIntent(contentIntent);
if (NOTIFICATION_ID > 1073741824) {
NOTIFICATION_ID = 0;
}
mNotificationManager.notify(NOTIFICATION_ID++, mBuilder.build());
Log.d(TAG, "Notification sent successfully.");
}
}
我收到通知,只有当usb电缆连接…如果没有,我会收到空白消息
谢谢
bergamo86@gmail.com
skype lucazin谢谢!包名称不同!因此,我只需设置当前包即可解决此问题
谢谢大家 检查从GCM服务器接收消息的MSGReceiver和MSGSerice或相应的类。您检查print并查看是否接收空值。可能这里使用的变量名与您从MVC发送的变量名不同。您也可以尝试
@Override
public void onReceive(Context context, Intent intent) {
ComponentName comp = new ComponentName(context.getPackageName(),
GCMNotificationIntentService.class.getName());
startWakefulService(context, (intent.setComponent(comp)));
setResultCode(Activity.RESULT_OK);
}
<application
android:name="lucasbergamo.minha_granna.Entidades.User"
android:allowBackup="true"
android:icon="@drawable/icones_indicador_financeiro"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".ac_Splash"
android:label="@string/title_activity_splash" >
</activity>
<activity
android:name=".ac_Login"
android:label="@string/title_activity_splash" >
<intent-filter>
<category android:name="android.intent.category.LAUNCHER"/>
<action android:name="android.intent.action.MAIN"/>
</intent-filter>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<receiver
android:name=".GcmBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="lucasbergamo.minha_granna.Notification" />
</intent-filter>
</receiver>
<service android:name=".GCMNotificationIntentService" />
</application>
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.LOCATION_HARDWARE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="18" />
<permission
android:name="lucasbergamo.minha_granna.Notification.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="lucasbergamo.minha_granna.Notification.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />