0

Picasa WebサービスのAccountManager.getAuthToken()をauthTokenType = "lh2"で呼び出すと、Android 5.xでは返されません。 "lh2"のgetAuthTokenは、Android 4.4.xと6.xでは5.xではなく正常に動作します。これはLollipopの2016年8月〜9月まではうまくいきましたが、その時のコードやアプリの変更はありませんでした。lh2スコープのAndroid AccountManager getAuthTokenはLollipopのコールバックを受け付けません

Lollipopデバイスで「lh2」のgetAuthTokenでこの問題が発生している人は誰ですか? Picasaウェブサービスにアカウント認証トークンを渡す別の方法はありますか?

//... 

String accountName = "[email protected]" 
Account selectedAccount = null; 
AccountManager accountManager = (AccountManager)activity.getSystemService(Context.ACCOUNT_SERVICE); 
Account[] list = accountManager.getAccounts(); 
for (android.accounts.Account a:list) { 
    if (a.name.equals(accountName)) { 
     selectedAccount = a; 
     break; 
    } 
} 

accountManager.invalidateAuthToken("com.google", null); 

AccountManagerFuture<Bundle> tokenFuture = getAccountManager().getAuthToken(
    selectedAccount, 
    "lh2", 
    null, 
    activity, 
    new OnTokenAcquired(), 
    new Handler(new OnTokenError())); 

//... 

private class OnTokenAcquired implements AccountManagerCallback<Bundle> { 
    @Override 
    public void run(AccountManagerFuture<Bundle> result) { 
     try { 
      Bundle b = result.getResult(); 
      if (b.containsKey(AccountManager.KEY_INTENT)) { 
       Intent intent = b.getParcelable(AccountManager.KEY_INTENT); 
       int flags = intent.getFlags(); 
       flags &= ~Intent.FLAG_ACTIVITY_NEW_TASK; 
       intent.setFlags(flags); 
       activity.startActivityForResult(intent, REQUEST_AUTHENTICATE); 
       return; 
      } 
      if (b.containsKey(AccountManager.KEY_AUTHTOKEN)) { 
       String authToken = b.getString(AccountManager.KEY_AUTHTOKEN); 

       // set authtoken to Picasa Web Service 
       _picasaService = new PicasawebService("myApp"); 
       _picasaService.setUserToken(authToken); 

       return; 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

private class OnTokenError implements Handler.Callback { 
    @Override 
    public boolean handleMessage(Message msg) { 
     Log.e("onError","ERROR"); 

     return false; 
    } 
} 

//... 

ありがとう:ここ

getAuthTokenに関連するコードです!

答えて

関連する問題