私はこの問題を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);
}
は、あなたがこの@Nataliya – AndroidMechanic
のためのコードを表示しますええ、それは動作しますが、私はアプリを再起動した後でなければなりません –
ので、その二回目の作業ではなくinstantly..right –