Pregunta

Estoy tratando de hacer una aplicación que abre la página de Android Market aplicación seleccionada y permite descargar el usuario it.I han utilizado más adelante intención de mercado abierto.

  Intent intent = new Intent (Intent.ACTION_VIEW);
    intent.setData (Uri.parse ("market://details?id=" + PackageName ));
    intent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivityForResult (intent, 13);

pero siempre me resultcode 0 en onActivityResult.StackTrace dice:

I/ActivityManager(   79): Starting activity: Intent { act=android.intent.action.VIEW dat=market://details?id=com.google.android.apps.unveil flg=0x10000000 cmp=com.an
droid.vending/.AssetInfoActivity }
W/ActivityManager(   79): Activity is launching as a new task, so cancelling activity result.

Lo que quiero es que el mercado me vuelve algún tipo de respuesta que el usuario descarga la aplicación o simplemente cancelada.

EDIT: @CommonsWare Estoy tratando de paquete de acceso añadido aquí, pero no puede cifra lo que debería ser clave para conseguir nombrepaquete de extras de ACTION_PACKAGE_ADDED

public class ServiceReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
    //Do this when the system sends the intent
    Bundle b = intent.getExtras();
    String packagename = b.get(?);   //cant figure what should be key to get packagename //from extras
    }

}
¿Fue útil?

Solución

El Android Market no está configurado para soportar startActivityForResult(). Además, tenga en cuenta que la descarga y la instalación ocurren de forma asíncrona (es decir, el usuario hace clic en Instalar, y la descarga se produce en el fondo, y terminar la instalación a través de la Notification).

Otros consejos

@CommonsWare magnífico!

Su solución demostró ser útil y también me llevó a otra página muy útil http://devdaily.com/java/jwarehouse/android/core/java/com/android/internal/content/PackageMonitor.java.shtml

A continuación se muestra un fragmento de código de origen del vínculo de arriba para obtener el nombre del paquete de la aplicación instalada actualmente de emisión intención:

 String getPackageName(Intent intent) {
        Uri uri = intent.getData();
        String pkg = uri != null ? uri.getSchemeSpecificPart() : null;
        return pkg;
    }

Gracias Commonsware.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top