puedo play origenes instalar funciona error desde desconocidos descargar descargadas como boton archivo abrir android hyperlink google-play amazon

android - origenes - play store



Cómo admitir los enlaces de Amazon y Android Market(Google Play) en la misma APK (1)

Edit: En el momento de esta publicación, no lo sabía, pero existe getInstallerPackageName() pero no estoy seguro de qué tan confiable es. Tampoco estoy seguro de lo que devuelve para Amazon / Market, etc. Puede que valga la pena verlo, pero si no funciona, el método a continuación funciona para Google vs Amazon.

Deberá firmar la aplicación normalmente, ejecutar en su dispositivo de prueba, obtener el valor de sig.hashCode () de sus registros, luego reemplazar -1545485543 con cualquier valor que tenga para sig.hashCode () y luego exportar y firmar nuevamente ( CON LA MISMA CLAVE QUE ANTES) y luego, cárguelos en Amazon y Market, desde el mismo APK.

Hazlo:

public static boolean isMarket(Context context){ boolean isMarketSig = false; int currentSig = 1; // I just set this to 1 to avoid any exceptions later on. try { Signature[] sigs = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES).signatures; for (Signature sig : sigs) { currentSig = sig.hashCode(); Log.i("MyApp", "Signature hashcode : " + sig.hashCode()); // This Log is for first time testing so you can find out what the int value of your signature is. } } catch (Exception e){ e.printStackTrace(); } //-1545485543 was the int I got from the log line above, so I compare the current signature hashCode value with that value to determine if it''s market or not. if (currentSig==-1545485543){ isMarketSig = true; } else { isMarketSig = false; } return isMarketSig; } public static void openStore(Context context){ if (isMarket(context)){ Intent goToMarket = new Intent(Intent.ACTION_VIEW,Uri.parse("market://d" + "etails?id=com.jakar.myapp")); goToMarket.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(goToMarket); } else { Intent goToAppstore = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.amazon.com/gp/mas/dl/andro" + "id?p=com.jakar.myapp")); goToAppstore.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(goToAppstore); } }

Básicamente, el código de hash () que obtiene de la aplicación instalada en su dispositivo de prueba será el mismo del mercado. El código hash de la tienda de aplicaciones será diferente porque, según https://developer.amazon.com/help/faq.html , la tienda de aplicaciones firma la aplicación con una firma específica para su cuenta de desarrollador, por lo que devolverá un código diferente. Valora eso con lo que realmente lo firmaste.

Y puse los métodos isMarket y openStore en una clase diferente llamada OtherClass para que solo tenga que codificarlos una vez. Luego, desde cualquier actividad en la que necesite abrir el enlace adecuado, solo llamo a OtherClass.openStore (contexto);

Nota: funciona para abrir el mercado con éxito, pero aún no he implementado este método en la App Store, por lo que no lo he probado por completo. Confío en que funcionará, pero no puedo garantizarlo, por lo que si usa lo que he sugerido y falla, no me responsabilice.

This fue una gran ayuda para dar una respuesta para poder probar qué firma se estaba utilizando.

Posible duplicado:
Soporte de enlaces de mercado de Amazon y Android dentro de la aplicación

Me preguntaba si y cómo podría diferenciar entre una aplicación instalada de Amazon App Store y una instalada desde Market.

Por ejemplo, digamos que tengo mi aplicación llamada "Aplicación de ejemplo" y quiero desarrollarla para Amazon y el mercado. En la aplicación tengo enlaces para calificar Aplicación de ejemplo. También tengo un enlace para comprar Example App Pro. Esto plantea un problema porque Amazon no lanzará mi aplicación si se vincula a una tienda de aplicaciones diferente.

Esto requiere que haga 2 archivos APK, lo cual es un dolor. Solo se requieren unos 30 segundos adicionales para exportar ambos, pero crea más desorden y tiempo de prueba.

Alguien ha encontrado una manera de crear un único APK que se pueda cargar tanto en Amazon como en Android Market sin hacer ningún cambio entre los dos para que en el tiempo de ejecución pueda verificar si es Amazon o Market quien lo instaló y cambiar los enlaces. ¿en consecuencia?