0

私はこの問題を1週間解決しようとしてきましたが、何の成功もありませんでした。アプリのユーザーがGoogleアカウントにログインせずに購読を購入しようとすると、Googleのサインイン画面に誘導されますが、ユーザーがサインインして購読しようとしても、 Googleアカウントにログインする。この非常に私はデバッグを行っており、AccountManagerのgetAccounts()はユーザーによって最近追加されたアカウントを含む配列を返します。アプリを終了してもう一度起動すると、GoogleのプレーでユーザーのGoogleアカウントが表示され、購入は正常に動作します。任意のアイデアはどのようにこの問題を解決するには?ここで は、ユーザが「購入」ボタンをクリックしたときに呼び出されるメソッドです。Google PlayがGoogleアカウントにログインすると言う(アプリ内課金)

accountsArray = accountManager.getAccountsByType("com.google"); 
    if(accountsArray != null && accountsArray.length >= 1){ 
     SystemUtils.getCache(this, new CacheUtils.CallBack<Cache>() { 
      @Override 
      public void run(Cache cache) { 
       billingActivityCache = cache; 
      } 
     }); 

     JSONObject payload = null; 
     try { 
      payload = new JSONObject() 
        .put("user", new JSONObject() 
          .put("id", billingActivityCache.getUser().getId() 
          )); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

     Bundle buyIntentBundle = null; 
     try { 
      buyIntentBundle = mService.getBuyIntent(3, getPackageName(), 
        currentSku, "subs", payload.toString()); 
     } catch (RemoteException e) { 
      e.printStackTrace(); 
     } 

     PendingIntent pendingIntent = buyIntentBundle.getParcelable("BUY_INTENT"); 
     try { 
      startIntentSenderForResult(pendingIntent.getIntentSender(), 
        BUY_KEY, new Intent(), Integer.valueOf(0), Integer.valueOf(0), 
        Integer.valueOf(0)); 
     } catch (IntentSender.SendIntentException e) { 
      e.printStackTrace(); 
     } 
    } else{ 
     Intent intent = new Intent(Settings.ACTION_ADD_ACCOUNT); 
     intent.putExtra(Settings.EXTRA_ACCOUNT_TYPES, new String[]{"com.google"}); 
     startActivityForResult(intent, LOGIN_GOOGLE); 
    } 
+0

は、あなたがこの@Nataliya – AndroidMechanic

+0

のためのコードを表示しますええ、それは動作しますが、私はアプリを再起動した後でなければなりません –

+0

ので、その二回目の作業ではなくinstantly..right –

答えて

関連する問題