En servicio de facturación de aplicaciones que se mueren a veces

Hola hemos lanzado esta aplicación en el mercado con facturación inApp y nuestros registros muestran que el BillingService (posiblemente la propia aplicación) mantiene getings matados muy al azar en ciertos dispositivos de los clientes. Debido a esto a veces no soy capaz de obtener la notificación si la compra fue exitosa o no. Algunos de los clientes a menudo tienen que comprar dos veces para hacer una compra exitosa. Aunque esto sucede a un pequeño porcentaje de clientes, pero es muy preocupante. Cualquier idea de por qué podría estar sucediendo o qué se puede hacer para evitar este problema.

2 Solutions collect form web for “En servicio de facturación de aplicaciones que se mueren a veces”

No estoy seguro si ayudará, pero yo recomendaría hacer su servicio de primer plano de BillingService: http://developer.android.com/guide/components/services.html#Foreground

Aquí está un pedazo de documentación "API para poner el servicio en un estado de primer plano, donde el sistema considera que es algo que el usuario está activamente consciente y por lo tanto no es un candidato para matar cuando la memoria es baja".

Podría ser que un pequeño porcentaje de su usuario tiene poca condición de memoria y es comenzar a matar servicios / aplicaciones (incluido el suyo).

¿Puede poner el código utilizado para la facturación de su aplicación? Podría ser que en la facturación de aplicación no es compatible con sus dispositivos o incluso si pierden conexión a Internet al intentar acceder a la notificación de difusión de Android Market. Lo que usé en mi aplicación es básicamente así:

@Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { if( BillingHelper.isBillingSupported()){ switch (arg2) { case 0: Log.d("Appname", "30 coins"); BillingHelper.requestPurchase(context, "com.paid.smallcoinbundle"); break; case 1: Log.d("Appname", "85 coins"); BillingHelper.requestPurchase(context, "com.paid.medcoinbundle"); break; case 2: Log.d("Appname", "175 coins"); BillingHelper.requestPurchase(context, "com.paid.midcoinbundle"); break; case 3: Log.d("Appname", "500 coins"); BillingHelper.requestPurchase(context, "com.paid.maxcoinbundle"); break; default: Log.d("Appname", "Something broke"); break; } // BillingHelper.requestPurchase(mContext, "android.test.purchased"); // android.test.purchased or android.test.canceled or android.test.refunded or com.blundell.item.passport } else { LayoutInflater inflater = getLayoutInflater(); View layout = inflater.inflate(R.layout.toast_layout,(ViewGroup) findViewById(R.id.toast_layout_root)); TextView text = (TextView) layout.findViewById(R.id.text); text.setText("In App Billing isnt supported by your device"); Toast toast = new Toast(getBaseContext()); toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); toast.setDuration(Toast.LENGTH_LONG); toast.setView(layout); toast.show(); return; } } 

Entonces :

 public Handler mTransactionHandler = new Handler(){ public void handleMessage(android.os.Message msg) { Log.d("Appname", "Transaction complete"); Log.d("Appname", "Transaction status: "+BillingHelper.latestPurchase.purchaseState); Log.d("Appname", "Item purchased is: "+BillingHelper.latestPurchase.productId); if(BillingHelper.latestPurchase.isPurchased()){ Log.d("Appname", "Ispurchased : " + BillingHelper.latestPurchase.productId); if(BillingHelper.latestPurchase.productId.equals("com.paid.smallcoinbundle")){ ConnectToServer.UpdateCoins(context,id,"add","30"); } if(BillingHelper.latestPurchase.productId.equals("com.paid.medcoinbundle")){ ConnectToServer.UpdateCoins(context,id,"add","85"); } if(BillingHelper.latestPurchase.productId.equals("com..paid.midcoinbundle")){ ConnectToServer.UpdateCoins(context,id,"add","175"); } if(BillingHelper.latestPurchase.productId.equals("com.paid.maxcoinbundle")){ ConnectToServer.UpdateCoins(context,id,"add","500"); } finish(); } }; 

};

Puesto que usted dijo que en la facturación de la aplicación funciona, aunque a veces necesitan comprar el artículo dos veces, asumo que sus nombres de paquete son correctos.

Por favor, hágamelo saber si usted va sobre la fijación y cuál era el problema. Este es un tema muy interesante.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.