le marché Android ne se met pas à jour sur le téléphone
-
28-10-2019 - |
Question
J'essaie de tester la facturation via l'application dans mon application Android. Le problème est qu'il semble que mon marché ne soit pas à jour car je ne peux pas me lier au service de facturation (j'utilise l'exemple de code Android de ici . Je continue de recevoir le message Cette application ne peut pas se connecter à Market. Votre version de Market est peut-être obsolète. Vous pouvez continuer à utiliser cette application mais vous ne pourra pas effectuer d'achats.
J'ai essayé de mettre à jour le marché en l'ouvrant, en touchant la maison, en attendant 5 à 10 minutes et en réessayant comme indiqué ici , mais cela n'a pas résolu le problème. Je teste sur un Nexus One sans connexion téléphonique - juste via WiFi (je ne sais pas si cela est pertinent) avec OS 2.2. Quelqu'un d'autre a-t-il rencontré ce problème?
Voici le code de mon activité:
if (!mBillingService.checkBillingSupported()) {
showDialog(DIALOG_CANNOT_CONNECT_ID);
}
et voici le code de mon service de facturation qui indique que la facturation n'est pas prise en charge:
public boolean checkBillingSupported() {
return new CheckBillingSupported().runRequest();
}
class CheckBillingSupported extends BillingRequest {
public CheckBillingSupported() {
// This object is never created as a side effect of starting this
// service so we pass -1 as the startId to indicate that we should
// not stop this service after executing this request.
super(-1);
}
@Override
protected long run() throws RemoteException {
Bundle request = makeRequestBundle("CHECK_BILLING_SUPPORTED");
Bundle response = mService.sendBillingRequest(request);
int responseCode = response.getInt(Consts.BILLING_RESPONSE_RESPONSE_CODE);
if (Consts.DEBUG) {
Log.i(TAG, "CheckBillingSupported response code: " +
ResponseCode.valueOf(responseCode));
}
boolean billingSupported = (responseCode == ResponseCode.RESULT_OK.ordinal());
ResponseHandler.checkBillingSupportedResponse(billingSupported);
return Consts.BILLING_RESPONSE_INVALID_REQUEST_ID;
}
}
private boolean bindToMarketBillingService() {
try {
if (Consts.DEBUG) {
Log.i(TAG, "binding to Market billing service");
}
boolean bindResult = bindService(
new Intent(Consts.MARKET_BILLING_SERVICE_ACTION),
this, // ServiceConnection.
Context.BIND_AUTO_CREATE);
if (bindResult) {
return true;
} else {
Log.e(TAG, "Could not bind to service.");
}
} catch (SecurityException e) {
Log.e(TAG, "Security exception: " + e);
}
return false;
}
La solution
Peut-être que le téléphone doit disposer d'une connexion de données mobiles.Vous pouvez essayer d'installer manuellement la dernière application de marché .