2016-02-24 146 views
0

我已經使用parse.com創建了簡單的推送通知應用程序。推送通知無法使用parse.com android?

設備已在parse.com上成功註冊,但是當我嘗試通過parse.com發送推送通知時,沒有通知發出。

AndroidMainifest.xml代碼:

<uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 
    <uses-permission android:name="android.permission.VIBRATE"/> 

    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <permission android:protectionLevel="signature" 
     android:name="com.parse.starter.permission.C2D_MESSAGE" /> 
    <uses-permission android:name="com.parse.starter.permission.C2D_MESSAGE" /> 
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.parse.starter" /> 
      </intent-filter> 
     </receiver> 

     <meta-data 
      android:name="com.parse.APPLICATION_ID" 
      android:value="" /> 
     <meta-data 
      android:name="com.parse.CLIENT_KEY" 
      android:value="" /> 

Reciever代碼:

public class Receiver extends ParsePushBroadcastReceiver { 

    private Intent parseIntent; 

    public Receiver() { 
     super(); 
    } 

    @Override 
    protected void onPushReceive(Context context, Intent intent) { 
     super.onPushReceive(context, intent); 

     if (intent == null) 
      return; 

     try { 
      JSONObject json = new JSONObject(intent.getExtras().getString("com.parse.Data")); 

      parseIntent = intent; 

     } catch (JSONException e) { 
      Log.d("PushJsonException", "" + e.getMessage()); 
     } 
    } 
} 

MainActivity代碼:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Parse.initialize(this); 
     ParseInstallation.getCurrentInstallation().saveInBackground(); 
    } 

    private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { 

     @Override 
     public void onReceive(Context context, Intent intent) { 
      // Call Methods to Update Your Stuff 
     } 
    }; 
    @Override 
    protected void onResume() { 
     super.onResume(); 
     LocalBroadcastManager.getInstance(this).registerReceiver(mBroadcastReceiver, new IntentFilter("com.example.harrypotter.pushnotificationdemo")); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     LocalBroadcastManager.getInstance(this).unregisterReceiver(mBroadcastReceiver); 

    } 

應用類:

public class ParseApp extends Application { 
    @Override 
    public void onCreate() { 
     super.onCreate(); 
     Parse.initialize(this); 
     ParseInstallation.getCurrentInstallation().saveInBackground(); 
    } 
} 
+0

使用GCM服務進行推送通知 – RushDroid

+0

應用程序類在哪裏? –

+0

我已經把應用程序類代碼 –

回答

0

Parse.com託管服務將於2017年1月28日全面停用。如果您有現有應用程序,請參閱此link並創建您自己的推送通知服務器。解析發佈數據庫遷移工具,使您可以將數據從您的Parse應用程序遷移到任何MongoDB數據庫。

有關更多信息,請在LInk

0

你沒有改變類別屬性,在清單文件:在線路變化「com.parse.starter.permission.C2D_MESSAGE」:

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 
<uses-permission android:name="android.permission.VIBRATE"/> 

<uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
<permission android:protectionLevel="signature" 
    android:name="com.parse.starter.permission.C2D_MESSAGE" /> 
<uses-permission android:name="com.parse.starter.permission.C2D_MESSAGE" /> 
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> 

重要低於 ,以匹配您應用的軟件包名稱+「.permission.C2D_MESSAGE」。

<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="YOUR PACKAGE NAME" /> 
     </intent-filter> 
    </receiver> 

    <meta-data 
     android:name="com.parse.APPLICATION_ID" 
     android:value="" /> 
    <meta-data 
     android:name="com.parse.CLIENT_KEY" 
     android:value="" /> 
相關問題