2013-06-09 9 views
8

के साथ विफल रहता है Google's GCM example बहुत सावधानी से पालन किया गया, लेकिन फिर भी निराशाजनक त्रुटियों के साथ आया। यहां जवाब नहीं मिला, इसलिए सोचा कि मैं इसे भविष्य के संदर्भ के लिए दस्तावेज करूंगा।Google क्लाउड मैसेजिंग रजिस्टर विधि IOException (MAIN_THREAD)

मुझे पूरा यकीन था कि मेरे पास सही अनुमतियों आदि के साथ सही ढंग से स्थापित किया गया था (पत्र के ऊपर दिए गए उदाहरण के बाद) ... लेकिन इस कोड ने हमेशा "MAIN_THREAD" स्पष्टीकरण के साथ IOException का कारण बना दिया।

String regid = ""; 
try { 
    GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(getApplicationContext()); 
    String sender_id = getResources().getString(R.string.GCM_sender_id); 
    regid = gcm.register(sender_id); 
    Log.d(TAG, "Device registered, registration id=" + regid); 
} 
catch (IOException ex) { 
    Log.e(TAG, "Device registration failed", ex); 
} 

मैं इस समस्या को मुख्य धागे पर निष्पादित करके समस्या को ढूंढने की कोशिश कर रहा था। पूर्वदर्शी में जवाब स्पष्ट है ... लेकिन मैं इसे नीचे दर्ज करूंगा।

उत्तर

12

ड्रम रोल ... आप मुख्य थ्रेड पर रजिस्टर विधि को कॉल नहीं कर सकते हैं। पीछे मुड़कर देखें तो स्पष्ट है, लेकिन शायद वहाँ दूसरों है कि जितना मैं कर चूसना हैं

+4

gcm.register (SENDER_ID) (प्रत्येक दिन लेकिन कम!); doInBackground में लेकिन अभी भी ऐप पंजीकृत करने और IOException फेंकने में असमर्थ है –

1

कॉल AsyncTask (doInBackGround) में रजिस्टर विधि

संबंधित मुद्दे