Android:使用ParsePushBroadcastReceiver解析推送通知不起作用

时间:2016-03-18 12:33:44

标签: android parse-platform push-notification broadcastreceiver android-notifications

我跟着启动,我有一个正在运行的应用程序读取和写入解析,问题是我希望用户接收推送通知,我只是不能让它工作。

<?xml version="1.0" encoding="utf-8"?>

<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.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

<permission android:protectionLevel="signature"
    android:name="com.messaging.application.app.permission.C2D_MESSAGE"/>
<user-permission android:name="com.messaging.application.app.permission.C2D_MESSAGE"/>

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Light.NoTitleBar"
    android:name="com.messaging.application.app.MyApplication">
    <activity
        android:name="com.messaging.application.app.LoginActivity"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity 
        android:name="com.messaging.application.app.ListUsersActivity"
        android:screenOrientation="portrait">
    </activity>
    <activity
        android:name="com.messaging.application.app.SignUpActivity"
        android:screenOrientation="portrait">
    </activity>
    <activity
        android:name="com.messaging.application.app.ListFriendRequests"
        android:screenOrientation="portrait">
    </activity>
    <activity
        android:name="com.messaging.application.app.ListFriendsActivity"
        android:screenOrientation="portrait">
    </activity>
    <service android:name="com.messaging.application.app.MessageService"/>


    <service android:name="com.parse.PushService" />
    <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.DELETE" />
            <action android:name="com.parse.push.intent.OPEN" />
        </intent-filter>
    </receiver>
    <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="com.messaging.application.app" />
        </intent-filter>
    </receiver>


    <!--<receiver android:name="com.messaging.application.app.CustomReceiver"-->
        <!--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>-->


    <activity android:name="com.messaging.application.app.MessagingActivity"
              android:screenOrientation="portrait">
    </activity>

</application>

和我的build.grade

    apply plugin: 'com.android.application'
apply plugin: 'com.parse'

buildscript {
    repositories {
        mavenCentral()
        maven { url 'https://maven.parse.com/repo' }
    }
    dependencies {
        classpath 'com.parse.tools:gradle:1.+'
    }
}

android {
    compileSdkVersion 19
    buildToolsVersion "19.1.0"
    defaultConfig {
        applicationId "com.messaging.application.app"
        minSdkVersion 11
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    productFlavors {
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:19.+'
    compile files('libs/sinch-android-rtc-3.9.2.jar')
    compile 'com.parse.bolts:bolts-android:1.+'
    compile fileTree(dir: 'libs', include: 'Parse-1.13.0.jar')
}

我已经使用安装在MyApplication类中初始化了解析。

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Parse.initialize(this, "xxxx", "xxxx"); // replaced just for the question
        ParseInstallation.getCurrentInstallation().saveInBackground();

    }
}

当我登录解析时,我会按一些简单的文字发送通知,但我的设备上没有收到通知。问题是什么?

1 个答案:

答案 0 :(得分:0)

我想你错过了ParseBroadcastReceiver。这是我在配置和你的配置之间看到的唯一差异。尝试将此添加到您的清单:

   <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>

检查deviceToken;)

希望它有所帮助!