2015-09-17 2 views
40

Я разрабатываю приложение xamarin forms для Android и iOS. Я реализую PushNotifications для того же, используя Parse SDK. Я добавил dll Parse.Android в ссылки проекта .Droid и dll Parse.iOS в ссылках на проект .iOS. Моя проблема иногда на Android, я не могу получить DeviceToken. Для DeviceToken и pushtype в классе установки синтаксиса нет записей. Это значения «undefined». Ниже мой код вместе с манифестом.Xamarin forms android Приложение не получает DeviceToken Parse SDK

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> 

Также несколько раз выше кода является причиной сбоев при запуске приложения. Я сообщил об этом вопрос here и here

Также ParseClient.Initialize самая первая строка «OnCreate» метод MainActivity где я передаю ключи синтаксического анализа, необходимые для инициализации.

Я вызываю метод RegisterForPushNotifications после вызова LoadApplication (new App()).

Приведенный ниже снимок экрана класса установки синтаксического анализа.

parse installation

Пожалуйста, дайте мне знать, если есть какая-то проблема в моем коде или это проблема с разбором SDK.

+0

Я думаю, вы не работает в эмуляторе, правильно? Устройство получает только токен в физическом устройстве. –

+0

@ iván-oliver Вышеупомянутая проблема относится к физическому устройству. – Amrut

+0

Что вы имеете в виду подчас? Это же устройство? –

ответ

1

Когда вы объявляете push-уведомление с помощью xamarin, тогда вам нужно написать код в обоих разделах, например, xamarin android и IOS, а также если вы использовали удаленное уведомление, а затем используйте для точной lib, которая лучше всего подходит для push-уведомления и зарегистрируйте свое приложение и включите службу уведомлений, такую ​​как GCM и APSN, релевантные для Android и IOS.

Plese попробовать это: https://github.com/rdelrosario/xamarin-plugins/tree/master/PushNotification/PushNotification

Смежные вопросы