2015-09-17 14 views
40

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 herehere

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.

parse installation

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.

+0

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

+0

@ iván-oliver Vấn đề được đề cập ở trên là trên thiết bị vật lý. – Amrut

+0

Đôi khi bạn có ý nghĩa gì? Cùng một thiết bị? –

Trả lời

1

khi bạn khai báo thông báo đẩy bằng cách sử dụng xamarin thì bạn phải viết mã trên cả hai phần như xamarin android và IOS, đồng thời nếu bạn đã sử dụng để thông báo từ xa thì hãy sử dụng để đẩy lib sắc nét. và đăng ký ứng dụng của bạn và bật dịch vụ thông báo như liên quan đến GCM và APSN cho Android và iOS.

Hãy thử cách này: https://github.com/rdelrosario/xamarin-plugins/tree/master/PushNotification/PushNotification

Các vấn đề liên quan