解析 Android 推送通知
Posted
技术标签:
【中文标题】解析 Android 推送通知【英文标题】:Parse Android Push Notifcations 【发布时间】:2017-01-28 03:57:45 【问题描述】:我在 Back4Apps 上运行 Parse,我已按照他们的说明向 T 了解如何为 android 设置推送通知。
http://docs.back4app.com/docs/android/push-notification/send-push-dashboard/
我从 Parse 仪表板推送通知并且我的手机振动,它有时甚至会显示通知 1/2 秒然后立即消失,所以我知道我的手机正在接收它,我错过了什么?为什么不显示?
非常感谢。
主要应用:
public class MainApplication extends Application
public MainApplication()
instance=this;
public static Context getContext()
return instance;
@Override
public void onCreate()
super.onCreate();
// Enable Crash Reporting
ParseCrashReporting.enable(this);
Parse.enableLocalDatastore(this);
Parse.initialize(new Parse.Configuration.Builder(getApplicationContext())
.applicationId("blah blah")
.clientKey("blah blah")
.server("https://parseapi.back4app.com/")
.enableLocalDataStore()
.build());
ParseInstallation installation = ParseInstallation.getCurrentInstallation();
installation.put("GCMSenderId", "123456789 etc");
installation.saveInBackground();
Build.Gradle:
dependencies
compile fileTree(include: ['*.jar'], dir: 'libs')
compile files('src/main/java/libs/ParseCrashReporting-1.9.2.jar')
compile files('src/main/java/libs/picasso-2.5.2.jar')
compile 'com.parse.bolts:bolts-android:1.+'
compile 'com.google.android.gms:play-services:10.0.1'
compile 'com.google.android.gms:play-services-ads:10.0.1'
compile 'com.facebook.android:facebook-android-sdk:[4,5)'
compile 'com.parse:parsefacebookutils-v4-android:1.10.3@aar'
compile 'com.google.firebase:firebase-core:10.0.1'
compile 'com.google.firebase:firebase-messaging:10.0.1'
compile 'com.parse:parse-android:1.13.1'
apply plugin: 'com.google.gms.google-services'
Android 清单:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="adam.exercisedictionary">
<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:name="adam.exercisedictionary.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="adam.exercisedictionary.permission.C2D_MESSAGE" />
<application android:allowBackup="true"
android:label="@string/app_name"
android:icon="@drawable/ic_launcher"
android:name="adam.exercisedictionary.MainApplication"
android:theme="@style/AppTheme"
android:largeHeap="true">
<activity
android:name="adam.exercisedictionary.CategoryList"
android:label="Gym Exercises">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="android.app.default_searchable"
android:value=".SearchResultsActivity"/>
</activity>
<service android:name="com.parse.PushService" />
<receiver android:name="com.parse.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="adam.exercisedictionary" />
</intent-filter>
</receiver>
<receiver android:name="com.parse.ParsePushBroadcastReceiver" android:exported="false">
<intent-filter>
<action android:name="com.parse.push.intent.RECEIVE" />
<action android:name="com.parse.push.intent.OPEN" />
<action android:name="com.parse.push.intent.DELETE" />
</intent-filter>
</receiver>
<meta-data android:name="com.parse.push.gcm_sender_id"
android:value="id:123456789 etc" />
【问题讨论】:
【参考方案1】:您能否尝试创建一个扩展 AppCompatActivity 的 Activity,而不是扩展 Application 的类?这可能是问题所在,因为您指出的教程使用的是该方法,而不是这种方法。
【讨论】:
谢谢,我昨晚想通了。上面的代码工作正常。我正在测试的设备有问题。我将 APK 发送到我朋友的一些 Android 设备上尝试,它运行良好,他们收到了警报。我的设备上一定有东西禁止通知,我的应用程序允许在设备上发出通知,但它不会工作。 我明白了。太好了,你发现了问题。我会尝试重新安装 Android SDK【参考方案2】:上面的代码运行良好。我正在测试的设备有问题。我将 APK 发送到我朋友的一些 Android 设备上尝试,它运行良好,他们收到了警报。我的设备上一定有东西禁止通知,我的应用程序允许在设备上发出通知,但它只是无法工作。
证明了在多台设备上进行测试的要点,以防万一一切看起来应该可以正常工作而不能正常工作。
【讨论】:
以上是关于解析 Android 推送通知的主要内容,如果未能解决你的问题,请参考以下文章