【问题标题】:android push notification with parse doesen't work带有解析的android推送通知不起作用
【发布时间】:2015-06-26 20:16:34
【问题描述】:

我从 parse.com 下载了空白 Android 项目,然后转到 parse.com 创建应用程序以获取应用程序和客户端 ID KEY,将其放在 ParseApplication 类上,运行应用程序,它在我的设备上运行良好,但是当我尝试发送推送通知,我收到了消息....没有注册设备

那么,怎么了?

有什么想法吗?

public class ParseApplication extends Application {

@Override
public void onCreate() {
super.onCreate();

// Initialize Crash Reporting.
ParseCrashReporting.enable(this);

// Enable Local Datastore.
Parse.enableLocalDatastore(this);

// Add your initialization code here
Parse.initialize(this,"EVIZ5DUourBOfSWykYZIhy4HFgDC0W","HCmjXHOz3SbHnHLlyQVD4uqOnmXdzAy");
ParsePush.subscribeInBackground("", new SaveCallback() {

    @Override
    public void done(com.parse.ParseException e) {
        // TODO Auto-generated method stub
        if (e== null){
            //log.e;
        } else{
            //log.e;
        }

    }
}); 
ParseUser.enableAutomaticUser();
ParseACL defaultACL = new ParseACL();
// Optionally enable public read access.
// defaultACL.setPublicReadAccess(true);
ParseACL.setDefaultACL(defaultACL, true);
  }
  }

清单文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.miscore"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="21" />
<!-- Internet permission -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!--
   NUEVO
-->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<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.example.miscore.permission.C2D_MESSAGE" />
<uses-permission android:name="com.example.miscore.permission.C2D_MESSAGE" />


<application
    android:name="com.example.database.BDApplication"
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".SplashScreen"
        android:label="@string/app_name"
        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=".Inicio"
        android:label="@string/inicio"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".Configuracion"
        android:label="@string/title_config"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".TablaGeneral"
        android:label="@string/title_activity_tabla_general"
        android:screenOrientation="portrait" >
    </activity>
    <activity
        android:name=".Calendario"
        android:label="@string/title_activity_calendario"
        android:screenOrientation="portrait" >
    </activity>
    <activity
        android:name=".TablaGoleo"
        android:label="@string/title_activity_tabla_goleo"
        android:screenOrientation="portrait" >
    </activity>
    <activity
        android:name=".About"
        android:label="@string/title_activity_about"
        android:screenOrientation="portrait"
        android:theme="@style/TransparentTheme" >
    </activity>
    <activity
        android:name=".CondUso"
        android:label="@string/title_activity_cond_uso" >
    </activity>
    <activity
        android:name=".AvisoPriv"
        android:label="@string/title_activity_aviso_priv" >
    </activity>
    <activity
        android:name=".FirmaLega"
        android:label="@string/title_activity_firma_legal" >
    </activity>
    <!--
           NUEVO
    -->
    <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.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" />

        <!--
          IMPORTANT: Change "com.parse.tutorials.pushnotifications" to match your app's package name.
        -->
        <category android:name="com.example.miscore" />
      </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.DELETE" />
        <action android:name="com.parse.push.intent.OPEN" />
      </intent-filter>
    </receiver>
</application>

【问题讨论】:

  • 您是否按照此处提到的所有步骤...parse.com/tutorials/android-push-notifications。我相信您在通知所需的清单文件中缺少某些内容。你能发布你的清单文件吗
  • 添加一些日志信息到 if (e== null){ //log.e; }
  • 是的,我按照教程一步一步来

标签: android parse-platform push-notification


【解决方案1】:

这听起来可能很愚蠢,但请尝试从您的设备上卸载您的应用,然后重新安装。 再次尝试您的代码,如果没有帮助,请尝试这样做:

ParseInstallation.getCurrentInstallation().put("nameOfColumnInParseInstallationClass", "some relevant data");
ParseInstallation.getCurrentInstallation().saveInBackground...

然后,卸载并重新安装。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-13
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多