Java GoogleAuthUtil.getToken导致android应用程序崩溃
我正在尝试使用GoogleAuthUtil.getToken生成一个令牌,可以用来登录到另一个服务。当我尝试使用此方法时,我的应用程序“挂起”并停止响应。最终我的手机会发出一些IO错误信息。我没有收到来自服务器的任何结果 电子邮件地址是我的电子邮件地址,格式为myname@gmail.com,我已经在我的作用域中使用了服务器地址,但现在我只是尝试使用尽可能简单的字符串来获得一个可以开始使用的结果Java GoogleAuthUtil.getToken导致android应用程序崩溃,java,android,authentication,android-asynctask,oauth-2.0,Java,Android,Authentication,Android Asynctask,Oauth 2.0,我正在尝试使用GoogleAuthUtil.getToken生成一个令牌,可以用来登录到另一个服务。当我尝试使用此方法时,我的应用程序“挂起”并停止响应。最终我的手机会发出一些IO错误信息。我没有收到来自服务器的任何结果 电子邮件地址是我的电子邮件地址,格式为myname@gmail.com,我已经在我的作用域中使用了服务器地址,但现在我只是尝试使用尽可能简单的字符串来获得一个可以开始使用的结果 public class GetTokens extends AsyncTask<Strin
public class GetTokens extends AsyncTask<String,Void,String>{
Context c;
String TAG = "wnycmap issues";
public GetTokens(Context c) {
this.c=c;
}
@Override
protected String doInBackground(String...mEmail) {
String token = "null";
String mScope = "oauth2:https://www.googleapis.com/auth/plus.me";
String email = mEmail[0];
System.out.println(c+email+mScope);
try {
token = GoogleAuthUtil.getToken(
c,
email,
mScope);
System.out.println(token);
} catch (IOException transientEx) {
// Network or server error, try later
Log.e(TAG, transientEx.toString());
} catch (UserRecoverableAuthException e) {
// Recover (with e.getIntent())
Log.e(TAG, e.toString());
// Intent recover = e.getIntent();
//startActivityForResult(recover, REQUEST_CODE_TOKEN_AUTH);
} catch (GoogleAuthException authEx) {
Log.e(TAG, authEx.toString());
}
return token;
以及我用来调用AsyncTask的代码
private void authenticate() {
String accountEmail="asdf";
String authToken = "null";
AccountManager am = AccountManager.get(context);
Account[] accounts = am.getAccountsByType("com.google");
if (accounts != null){
Account account = accounts[0];
accountEmail = account.name;
System.out.println(context);
try {
authToken=new GetTokens(context).execute(accountEmail).get();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
尝试一些事情
顺便说一句,我似乎根本听不懂这些错误。我只是尝试用catch(异常e)运行代码,但它的执行方式仍然相同
private void authenticate() {
String accountEmail="asdf";
String authToken = "null";
AccountManager am = AccountManager.get(context);
Account[] accounts = am.getAccountsByType("com.google");
if (accounts != null){
Account account = accounts[0];
accountEmail = account.name;
System.out.println(context);
try {
authToken=new GetTokens(context).execute(accountEmail).get();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}