निम्न विधि व्यवस्थित रूप से आईओएक्सप्शन को मेरे एंड्रॉइड डिवाइस पर लगाए जाने पर व्यवस्थित रूप से फेंकता है जबकि इंटरनेट कनेक्शन जिंदा है (मैं ईमेल पुनर्प्राप्त कर सकता हूं या अपने एंड्रॉइड डिवाइस का उपयोग कर जीमेल से कनेक्ट कर सकता हूं)।IMException AccountManagerFuture.getResults द्वारा फेंक दिया गया है जबकि कनेक्शन जिंदा है
क्या कोई मदद कर सकता है?
private void performAuthentication() {
Log.d("GAWidget", "performAuthentication");
GoogleCredential credential = new GoogleCredential();
GoogleAccountManager accountManager = new GoogleAccountManager(this);
Log.d("GAWidget", "after getting accountManager");
Account account = accountManager.getAccountByName("[email protected]");
Log.d("GAWidget", "after getting account"+"account.name: "+account.name);
accountManager.getAccountManager().getAuthToken(account, "oauth2:https://www.googleapis.com/auth/analytics.readonly",
true, new AccountManagerCallback<Bundle>() {
public void run(AccountManagerFuture<Bundle> future) {
try {
String token = future.getResult(15, TimeUnit.SECONDS).getString(AccountManager.KEY_AUTHTOKEN);
Log.d("GAWidget", "token: "+token);
useToken(token);
} catch (OperationCanceledException e) {
Log.e("GAWidget", "OperationCanceledException", e);
} catch (AuthenticatorException e) {
Log.e("GAWidget", "AuthenticatorException", e);
} catch (IOException e) {
Log.e("GAWidget", "IOException", e);
}
}
}, null);
}
संपादित करें:
05-27 19:09:04.319: E/GAWidget(12487): IOException
05-27 19:09:04.319: E/GAWidget(12487): java.io.IOException
05-27 19:09:04.319: E/GAWidget(12487): at android.accounts.AccountManager.convertErrorToException(AccountManager.java:1440)
05-27 19:09:04.319: E/GAWidget(12487): at android.accounts.AccountManager.access$400(AccountManager.java:138)
05-27 19:09:04.319: E/GAWidget(12487): at android.accounts.AccountManager$AmsTask$Response.onError(AccountManager.java:1301)
05-27 19:09:04.319: E/GAWidget(12487): at android.accounts.IAccountManagerResponse$Stub.onTransact(IAccountManagerResponse.java:69)
05-27 19:09:04.319: E/GAWidget(12487): at android.os.Binder.execTransact(Binder.java:320)
05-27 19:09:04.319: E/GAWidget(12487): at dalvik.system.NativeStart.run(Native Method)
भेज दिया जार:
google-http-client-1.9.0-beta.jar
google-http-client-android2-1.9.0-beta.jar (only for SDK >= 2.1)
google-http-client-android3-1.9.0-beta.jar (only for SDK >= 3.0)
gson-2.1.jar
guava-11.0.1.jar
jackson-core-asl-1.9.4.jar
jsr305-1.3.9.jar
protobuf-java-2.2.0.jar
BTW जाँच से, यह मेरा गैलेक्सी नेक्सस (4.0.4) पर ठीक काम करता है, लेकिन आप कुछ अजीब चरित्र है लगता है आपके टोकन प्रकार में है। सिर्फ एक कॉपी-पेस्ट त्रुटि हो सकती है, लेकिन स्ट्रिंग को दोबारा टाइप करें और सुनिश्चित करें कि यह केवल मामले में ASCII है। –
आपके उत्तर निकोले के लिए धन्यवाद, मैंने यूआरएल में "oauth2:" भाग को हटाने की कोशिश की और मुझे एक शून्य टोकन मिलता है। क्या आप टोकन प्रकार में अजीब पात्रों पर विस्तृत जानकारी दे सकते हैं? मैं नहीं देखता कि आपका क्या मतलब है। चेतावनियों के बारे में मुझे यह भी मिलता है: "GoogleLoginService: स्थिति 200 लेकिन प्रतिक्रिया में ऑथ टोकन शामिल नहीं था"। कोई उपाय? – balteo
मुझे कभी-कभी निम्न चेतावनी भी मिलती है: "निष्क्रिय इनपुट कनेक्शन पर IInputConnectionWrapper showStatusIcon" – balteo