2013-02-07 93 views
2

在我的monodroid應用程序中,使用pushSharp註冊某些設備的推送通知時遇到問題。我的普通推送通知設置在較新的設備(如SGS2,SGS3和Nexus7)上工作正常,但在Legend and Hero運行2.2和2.2.1版本時,註冊在發佈時失敗(在調試中正常工作)。 我縮小了問題的StartService電話:使用PushSharp推送通知的MonoDroid設備註冊

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. 

我不太確定如何解決這個問題,並希望得到任何幫助。

感謝 彼得

+0

嘗試設置連接到無在釋放模式? – Cheesebaron

回答

0

你不需要這些權限,他們應該將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" /> 
相關問題