解析推送通知仅在模拟器中工作
Posted
技术标签:
【中文标题】解析推送通知仅在模拟器中工作【英文标题】:Parse Push Notification just work in Emulator 【发布时间】:2014-11-20 18:18:55 【问题描述】:我需要帮助,因为我正在使用 Parse Push Notification android,但我的应用程序只在模拟器中接收通知,但在真实设备中没有接收。
在我的分析中出现注册。
这是我的许可和广播接收器:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:protectionLevel="signature"
android:name="org.example.promociones.permission.C2D_MESSAGE" />
<uses-permission android:name="org.example.promociones.permission.C2D_MESSAGE" />
<service android:name="com.parse.PushService" />
<receiver android:name="com.parse.ParseBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.USER_PRESENT" />
</intent-filter>
</receiver>
<receiver android:name="com.example.promociones.Receiver"
android:exported="false">
<intent-filter>
<action android:name="com.parse.push.intent.RECEIVE" />
<action android:name="com.parse.push.intent.DELETE" />
<action android:name="com.parse.push.intent.OPEN" />
</intent-filter>
</receiver>
还有我的注册码:
Override
public void onCreate()
// TODO Auto-generated method stub
super.onCreate();
Parse.initialize(this, "SomeValue", "SomeValue");
ParseInstallation.getCurrentInstallation().saveInBackground();
ParsePush.subscribeInBackground("pruebas", new SaveCallback()
@Override
public void done(com.parse.ParseException e)
// TODO Auto-generated method stub
if(e!=null)
Log.d("com.parse.push", "La subscripcion al canal fue exitosa");
else
Log.e("com.parse.push", "Fallo la subscripcion push");
);
【问题讨论】:
【参考方案1】:请改用以下内容:
// inform the Parse Cloud that it is ready for notifications
PushService.setDefaultPushCallback(this, MainActivity.class);
ParseInstallation.getCurrentInstallation().saveInBackground(new SaveCallback()
@Override
public void done(ParseException e)
if (e == null)
else
e.printStackTrace();
);
【讨论】:
我错过了这一行PushService.setDefaultPushCallback(this, MainActivity.class);
【参考方案2】:
我遇到了同样的问题,那是因为我没有检查包名
<permission
android:name="YOUR_PACKAGE.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="YOUR_PACKAGE.permission.C2D_MESSAGE" />
【讨论】:
以上是关于解析推送通知仅在模拟器中工作的主要内容,如果未能解决你的问题,请参考以下文章
Firebase 推送通知在纱线手表中工作,但在纱线构建中不工作