Регистрация устройства MonoDroid для push-уведомлений с помощью PushSharp

В моем приложении для монодроидов у меня возникла проблема с регистрацией некоторых устройств для push-уведомлений с помощью pushSharp. Моя общая настройка push-уведомлений отлично работает на более новых устройствах, таких как SGS2, SGS3 и Nexus7, однако на Legend и Hero с версиями 2.2 и 2.2.1 регистрация завершается ошибкой в ​​выпуске (отлично работает при отладке). Я сузил проблему до вызова StartService:

var intent = new Intent(GCMConstants.INTENT_TO_GCM_REGISTRATION);
intent.SetPackage(GSF_PACKAGE);
intent.PutExtra(GCMConstants.EXTRA_APPLICATION_PENDING_INTENT,
                PendingIntent.GetBroadcast(context, 0, new Intent(), 0));
intent.PutExtra(GCMConstants.EXTRA_SENDER, senders);
context.StartService(intent);

Файл манифеста выглядит нормально:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="10" />
<uses-permission android:name="android.permission.INTERNET" />
...
<!-- Google Cloud Messaging (GCM) for push messages -->
<permission android:name="my.package.name.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="my.package.name.permission.C2D_MESSAGE" />    
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

Намерение выглядит нормально (act=com.google.android.c2dm.intent.REGISTER pkg=com.google.android.gsf), и senderId правильный, но метод GCMIntentService OnReceive никогда не запускается...

Иногда с помощью logcat можно увидеть следующее сообщение об ошибке (хотя и не всегда):

E/C2DMRegistrar(  302): [C2DMReg] handleRequest caught java.io.IOException: SSL shutdown failed: I/O error during system call, Broken pipe.

Я не совсем уверен, как решить эту проблему, и буду признателен за любую помощь.

Спасибо Питер


person Peter    schedule 07.02.2013    source источник
comment
Пробовали установить ссылку на none в режиме деблокирования?   -  person Cheesebaron    schedule 09.06.2013


Ответы (1)


Вам не нужны эти разрешения, так как они должны быть установлены в вашем коде pushsharp...

    <permission android:name="my.package.name.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="my.package.name.permission.C2D_MESSAGE" />    
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
person SpoiledTechie.com    schedule 09.09.2013