Android 如何获取授权码?
对于我的服务器部件应用程序,需要身份验证令牌(用于身份验证)和“授权代码”来获取一些信息。 我在我的Android应用程序上获得身份验证令牌并将其发送到服务器Android 如何获取授权码?,android,google-plus,accountmanager,Android,Google Plus,Accountmanager,对于我的服务器部件应用程序,需要身份验证令牌(用于身份验证)和“授权代码”来获取一些信息。 我在我的Android应用程序上获得身份验证令牌并将其发送到服务器 private void requestToken() { Account userAccount = null; String user = Settings.getUser(getActivity()); for (Account account : accountManager.get
private void requestToken() {
Account userAccount = null;
String user = Settings.getUser(getActivity());
for (Account account : accountManager.getAccountsByType("com.google")) {
if (account.name.equals(user)) {
userAccount = account;
break;
}
}
accountManager.getAuthToken(userAccount, "oauth2:https://www.googleapis.com/auth/plus.login",
null, getActivity(),
new OnTokenAcquired(), null);
}
private class OnTokenAcquired implements AccountManagerCallback<Bundle> {
@Override
public void run(AccountManagerFuture<Bundle> result) {
try {
Bundle bundle = result.getResult();
Intent launch = (Intent) bundle.get(AccountManager.KEY_INTENT);
dumpIntent(launch);
if (launch != null) {
startActivityForResult(launch, AUTHORIZATION_CODE);
} else {
String token = bundle
.getString(AccountManager.KEY_AUTHTOKEN);
Settings.setToken(getActivity(), token);
doCoolAuthenticatedStuff();
}
} catch (Exception e) {
Toast.makeText(getActivity(), R.string.error_check_connection, Toast.LENGTH_SHORT).show();
//throw new RuntimeException(e);
}
}
}
private void requestToken(){
Account userAccount=null;
字符串user=Settings.getUser(getActivity());
对于(帐户:accountManager.getAccountsByType(“com.google”)){
if(account.name.equals(user)){
用户帐户=帐户;
打破
}
}
accountManager.getAuthToken(userAccount,“oauth2:https://www.googleapis.com/auth/plus.login",
null,getActivity(),
新的OnTokenAcquired(),null);
}
私有类实现AccountManagerCallback{
@凌驾
公共作废运行(AccountManagerFuture结果){
试一试{
Bundle Bundle=result.getResult();
Intent启动=(Intent)bundle.get(AccountManager.KEY\u Intent);
目的(发射);
如果(启动!=null){
startActivityForResult(发布、授权代码);
}否则{
字符串标记=bundle
.getString(AccountManager.KEY\u AUTHTOKEN);
setings.setToken(getActivity(),token);
doCoolAuthenticatedStuff();
}
}捕获(例外e){
Toast.makeText(getActivity(),R.string.error\u check\u connection,Toast.LENGTH\u SHORT).show();
//抛出新的运行时异常(e);
}
}
}
如何使用此代码或其他代码解决获取授权代码的任务