Подтвердить что ты не робот

Xamarin создает приложение для Android, не получающее DeviceToken Parse SDK

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

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>

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

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

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

Ниже приведен скриншот класса установки синтаксического анализа.

parse installation

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

4b9b3361

Ответ 1

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

Plese попробуйте следующее: https://github.com/rdelrosario/xamarin-plugins/tree/master/PushNotification/PushNotification