Tôi đang phát triển ứng dụng biểu mẫu xamarin cho cả Android và iOS. Tôi đang triển khai PushNotifications cho cùng sử dụng SDK Parse. Tôi đã thêm dll Parse.Android trong tài liệu tham khảo của dự án .Droid và Parse.iOS dll trong tài liệu tham khảo của dự án .iOS. Vấn đề của tôi đôi khi trên Android tôi không thể truy xuất DeviceToken. Không có mục nhập cho DeviceToken và pushtype trong lớp cài đặt phân tích cú pháp. Giá trị của nó là 'không xác định'. Dưới đây là mã của tôi cùng với tệp kê khai.Ứng dụng Android Xamarin không nhận được SDK phân tích cú pháp DeviceToken
public async void RegisterForPushNotifications()
{
try {
if (Utility.isNetworkConnected()) {
await ParsePush.SubscribeAsync ("");
var installation = ParseInstallation.CurrentInstallation;
// I'm saving the DeviceToken in App.regId for future uses
App.regId = System.String.IsNullOrWhiteSpace (installation.DeviceToken) ? "" : installation.DeviceToken;
ParsePush.ParsePushNotificationReceived += PushNotificationReceived;
}
} catch (ParseException e) {
System.Diagnostics.Debug.WriteLine (e.StackTrace);
} catch (Java.Lang.Exception e) {
e.PrintStackTrace();
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.nirvaniclabs">
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="23" />
<application android:label="RxLifetime" android:icon="@drawable/icon" android:largeHeap="true">
<receiver android:name="parse.ParsePushBroadcastReceiver" 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.nirvaniclabs" />
</intent-filter>
</receiver>
<service android:name="parse.ParsePushService" />
</application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.LOCATION_HARDWARE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<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" />
<permission android:protectionLevel="signature" android:name="com.nirvaniclabs.permission.C2D_MESSAGE" />
<uses-permission android:name="com.nirvaniclabs.permission.C2D_MESSAGE" />
</manifest>
treo Ngoài ra một số lần trên mã đề cập đang gây ra lúc khởi động ứng dụng. Tôi đã báo cáo sự cố này here và here
Ngoài ra ParseClient.Initialize
là dòng đầu tiên của phương pháp 'OnCreate' của MainActivity nơi tôi chuyển các khóa phân tích bắt buộc để khởi tạo.
Tôi đang gọi phương thức RegisterForPushNotifications sau khi LoadApplication (new App())
được gọi.
Đính kèm bên dưới là ảnh chụp màn hình của lớp cài đặt phân tích cú pháp.
Xin vui lòng cho tôi biết nếu có một số vấn đề trong mã của tôi hoặc là nó trở thành vấn đề với SDK phân tích cú pháp.
Tôi đoán bạn không chạy trong trình giả lập, phải không? Thiết bị chỉ nhận mã thông báo trên thiết bị thực. –
@ iván-oliver Vấn đề được đề cập ở trên là trên thiết bị vật lý. – Amrut
Đôi khi bạn có ý nghĩa gì? Cùng một thiết bị? –