2011-02-11 26 views
62

Quiero que el usuario de mi aplicación pueda compartir/recomendar mi aplicación a otros usuarios. Uso el intento ACTION_SEND. Agrego texto sin formato que dice algo como: instale esta aplicación genial. Pero no puedo encontrar una manera de permitirles a los usuarios ir directamente a la pantalla de instalación del mercado, por ejemplo. Todo lo que puedo proporcionarles es un enlace web o algo de texto. En otras palabras, estoy buscando una forma muy directa para que los usuarios de Android tengan mi aplicación instalada.Compartir la aplicación "enlace" en Android

Gracias por cualquier ayuda/punteros,

Thomas

Respuesta

153

Esto le permitirá elegir entre el correo electrónico, whastapp o lo que sea.

try { 
    Intent i = new Intent(Intent.ACTION_SEND); 
    i.setType("text/plain"); 
    i.putExtra(Intent.EXTRA_SUBJECT, "My application name"); 
    String sAux = "\nLet me recommend you this application\n\n"; 
    sAux = sAux + "https://play.google.com/store/apps/details?id=Orion.Soft \n\n"; 
    i.putExtra(Intent.EXTRA_TEXT, sAux); 
    startActivity(Intent.createChooser(i, "choose one")); 
} catch(Exception e) { 
    //e.toString(); 
} 
+3

+1 Gracias, realmente necesitaba esta solución. – chrome

+0

Muy bueno, funciona como el encanto. – amardeep

+0

Solución perfecta. –

19

Thomas,

Usted quiere proporcionar a los usuarios un enlace que llevarlos directamente a la página de detalles de la aplicación. Lo siguiente es de developer.android.com:

Carga de una aplicación Detalles de la página

En Android Market, todas las aplicaciones tiene una página de detalles que proporciona una visión general de la solicitud de los usuarios. Por ejemplo, la página incluye una breve descripción de la aplicación y pantalla tiros de él en uso, si lo suministra el desarrollador, así como la retroalimentación de los usuarios y información sobre el desarrollador . La página Detalles también incluye un botón "Instalar" que permite al usuario disparar la descarga/compra de la aplicación.

Si se quiere referir al usuario a una aplicación específica , su aplicación puede llevar al usuario directamente a la página detalles de la aplicación. Para hacerlo, la aplicación envía un Intento ACTION_VIEW que incluye un parámetro URI y consulta en este formato:

mercado: // details? Id =

En este caso, el parámetro nombrepaquete es objetivo el nombre completo del paquete de la aplicación, como declaró en el paquete el atributo el elemento manifest en el archivo de manifiesto de la aplicación . Por ejemplo :

mercado: // details? Id = com.example.android.jetboy

Fuente: http://developer.android.com/guide/publishing/publishing.html

+0

+1 para el enlace. Eso se ve bien. Como quiero que el usuario comparta, aún necesito usar ACTION_SEND y agregar el enlace de mercado en mi texto. Si el usuario hace clic en él, lo redirigirá a la página de instalación. Suena bien, tengo que intentarlo. Avísame si te entendí bien. – Thomas

+0

Sí, puedes usar el enlace de mercado en el texto de un ACTION_SEND, pero solo funcionará si se hace clic mientras estás en un dispositivo Android. –

+1

pero este enlace no abrirá el enlace de mercado si usamos ACTION_SEND, el enlace permanecerá allí como un texto simple. pero el enlace fue útil para abrir el mercado CON ACTION_VIEW. –

9

Para ser más exactos

Intent intent = new Intent(Intent.ACTION_VIEW); 
    intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.android.example")); 
    startActivity(intent); 

o si desea compartir sus otras aplicaciones de su desarrollador. cuenta usted puede hacer algo como esto

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setData(Uri.parse("https://play.google.com/store/apps/developer?id=Your_Publisher_Name")); 
startActivity(intent); 
2

para rellenar automáticamente el nombre de la aplicación y el ID de aplicación se puede utilizar esto:

int applicationNameId = context.getApplicationInfo().labelRes; 
final String appPackageName = context.getPackageName(); 
Intent i = new Intent(Intent.ACTION_SEND); 
i.setType("text/plain"); 
i.putExtra(Intent.EXTRA_SUBJECT, activity.getString(applicationNameId)); 
String text = "Install this cool application: "; 
String link = "https://play.google.com/store/apps/details?id=" + appPackageName; 
i.putExtra(Intent.EXTRA_TEXT, text + " " + link); 
startActivity(Intent.createChooser(i, "Share link:")); 
7

llamar a este método:

public static void shareApp(Context context) 
{ 
    final String appPackageName = context.getPackageName(); 
    Intent sendIntent = new Intent(); 
    sendIntent.setAction(Intent.ACTION_SEND); 
    sendIntent.putExtra(Intent.EXTRA_TEXT, "Check out Aap Ka Sewak App at: https://play.google.com/store/apps/details?id=" + appPackageName); 
    sendIntent.setType("text/plain"); 
    context.startActivity(sendIntent); 
} 
1

Sé que esta pregunta ha sido respondida, pero quisiera compartir una solución alternativa:

Intent shareIntent = new Intent(Intent.ACTION_SEND); 
shareIntent.setType("text/plain"); 
String shareSubText = "WhatsApp - The Great Chat App"; 
String shareBodyText = "https://play.google.com/store/apps/details?id=com.whatsapp&hl=en"; 
shareIntent.putExtra(Intent.EXTRA_SUBJECT, shareSubText); 
shareIntent.putExtra(Intent.EXTRA_TEXT, shareBodyText); 
startActivity(Intent.createChooser(shareIntent, "Share With")); 
2
aplicación

Compartir con título es que APP_NAME, el contenido es el enlace de la aplicación

private static void shareApp(Context context) { 
    final String appPackageName = BuildConfig.APPLICATION_ID; 
    final String appName = context.getString(R.string.app_name); 
    Intent shareIntent = new Intent(Intent.ACTION_SEND); 
    shareIntent.setType("text/plain"); 
    String shareBodyText = "https://play.google.com/store/apps/details?id=" + 
      appPackageName; 
    shareIntent.putExtra(Intent.EXTRA_SUBJECT, appName); 
    shareIntent.putExtra(Intent.EXTRA_TEXT, shareBodyText); 
    context.startActivity(Intent.createChooser(shareIntent, context.getString(R.string 
      .share_with))); 
} 
1

finalmente este código se trabajó para mí para abrir cliente de correo electrónico de nuestra androide. prueba este fragmento.

Intent testIntent = new Intent(Intent.ACTION_VIEW); 
        Uri data = Uri.parse("mailto:?subject=" + "Feedback" + "&body=" + "Write Feedback here....." + "&to=" + "[email protected]"); 
        testIntent.setData(data); 
        startActivity(testIntent); 
0

En realidad, la mejor manera de esquilado que la aplicación entre los usuarios, Google (base de fuego) demostró la nueva tecnología Firebase Dynamic Link A través de varias líneas puede que sea esta es la documentación https://firebase.google.com/docs/dynamic-links/ y el código es

Uri dynamicLinkUri = dynamicLink.getUri(); 
     Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() 
      .setLink(Uri.parse("https://www.google.jo/")) 
      .setDynamicLinkDomain("rw4r7.app.goo.gl") 
      .buildShortDynamicLink() 
      .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() { 
       @Override 
       public void onComplete(@NonNull Task<ShortDynamicLink> task) { 
        if (task.isSuccessful()) { 
         // Short link created 
         Uri shortLink = task.getResult().getShortLink(); 
         Uri flowchartLink = task.getResult().getPreviewLink(); 
         Intent intent = new Intent(); 
         intent.setAction(Intent.ACTION_SEND); 
         intent.putExtra(Intent.EXTRA_TEXT, shortLink.toString()); 
         intent.setType("text/plain"); 
         startActivity(intent); 
        } else { 
         // Error 
         // ... 
        } 
       } 
      }); 
Cuestiones relacionadas