我想使用Parse来推送通知。当我在Android模拟器上测试app时,我发现有些设备有一些设备没有设备。如果没有deviceToken,则此设备无法接收通知。我怎么解决这个问题?以下是我的代码。
public class ShooksApplication extends Application {
public void onCreate() {
super.onCreate();
Parse.initialize(this, "***********", "*******************");
ParseInstallation installation = ParseInstallation.getCurrentInstallation();
installation.saveInBackground();
}
}
并且清单正在运行,因为具有deviceToken的设备可以接收通知。但我看到安装中所有数据的pushType是gcm。 以下是我的清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.cs442.project.team13" >
<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.CAMERA" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<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" />
<!--
IMPORTANT: Change "com.parse.starter.permission.C2D_MESSAGE" in the lines below
to match your app's package name + ".permission.C2D_MESSAGE".
-->
<permission android:protectionLevel="signature"
android:name="com.cs442.project.team13.permission.C2D_MESSAGE" />
<uses-permission android:name="com.cs442.project.team13.permission.C2D_MESSAGE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:name=".ShooksApplication">
<activity
android:name="com.cs442.project.team13.MainPage"
android:label="Search"
android:theme="@style/Theme.MyCompatTheme">
<meta-data
android:name="android.app.default_searchable"
android:value=".SearchBookResultsActivity" />
</activity>
<activity
android:name="com.cs442.project.team13.SearchBookResultsActivity"
android:label="SearchResult"
android:theme="@style/Theme.MyCompatTheme">
<!-- to identify this activity as "searchable" -->
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.app.default_searchable"
android:value="com.example.ExampleActivity" />
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
<activity android:name="com.cs442.project.team13.WishListResult"
android:label="Wishlist"/>
<activity android:name="com.cs442.project.team13.Details"
android:label="Details"/>
<activity
android:name="com.cs442.project.team13.LoginActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.cs442.project.team13.UpdateProfile" />
<activity android:name="com.cs442.project.team13.RegisterActivity" />
<activity
android:name="com.cs442.project.team13.BookCategoryActivity"
android:label="@string/title_activity_book_category" >
</activity>
<activity
android:name="com.cs442.project.team13.PostBookActivity"
android:label="@string/title_activity_post_book" >
</activity>
<activity
android:name="com.cs442.project.team13.DisplayBookInfoActivity"
android:label="@string/title_activity_display_book_info" >
</activity>
<activity
android:name="com.cs442.project.team13.DisplayProviderInfoActivity"
android:label="@string/title_activity_display_provider_info" >
</activity>
<activity
android:name="com.cs442.project.team13.DisplayUserBookListActivity"
android:label="@string/title_activity_display_user_book_list" >
</activity>
<activity
android:name="com.cs442.project.team13.UpdateBookInfoActivity"
android:label="@string/title_activity_update_book_info" >
</activity>
<activity
android:name="com.cs442.project.team13.CategorySearch"
android:label="@string/title_activity_category_search" >
</activity>
<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.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.cs442.project.team13" />
</intent-filter>
</receiver>
<meta-data android:name="com.parse.push.notification_icon" android:resource="@drawable/book126"/>
</application>
我该如何解决这个问题?
答案 0 :(得分:0)
从我在Manifest中看到的唯一解决方案可能是删除
<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>
答案 1 :(得分:0)
请记住添加以下代码行,以便您的.json文件正确运行
gradle:app
PARTITION BY
gradle:project
apply plugin: 'com.google.gms.google-services'
implementation 'com.google.firebase:firebase-core:17.5.0'
implementation 'com.google.firebase:firebase-messaging:20.2.4'