我希望我的应用程序用户能够与其他用户共享/推荐我的应用程序。我使用ACTION_SEND意图。我添加了纯文本,说明了以下内容:安装这个很酷的应用程序。但我找不到让用户直接进入市场安装界面的方法。我可以提供的只是一个网站链接或一些文字。 换句话说,我正在寻找一个非常直接的方式让Android用户安装我的应用程序。
感谢您的任何帮助/指示,
托马斯
答案 0 :(得分:209)
这将允许您从电子邮件,whatsapp或其他任何内容中进行选择。
try {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "My application name");
String shareMessage= "\nLet me recommend you this application\n\n";
shareMessage = shareMessage + "https://play.google.com/store/apps/details?id=" + BuildConfig.APPLICATION_ID +"\n\n";
shareIntent.putExtra(Intent.EXTRA_TEXT, shareMessage);
startActivity(Intent.createChooser(shareIntent, "choose one"));
} catch(Exception e) {
//e.toString();
}
答案 1 :(得分:20)
托马斯,
您希望为用户提供market://
链接,该链接会将其直接带到您应用的详细信息页面。以下内容来自developer.android.com:
加载应用程序的详细信息页面
在Android Market中,每个应用程序 有一个提供的详细信息页面 用户应用程序概述。 例如,该页面包含一个简短的 应用程序和屏幕的描述 正在使用的镜头,如果提供的话 开发人员,以及来自的反馈 用户和有关的信息 开发商。详情页面也是 包括一个“安装”按钮 用户触发下载/购买 申请书。
如果您想将用户推荐给a 具体应用,你的 应用程序可以直接带给用户 到应用程序的详细信息页面。至 这样做,你的应用程序发送一个 ACTION_VIEW包含URI的Intent 和以下格式的查询参数:
市场://细节ID =
在这种情况下,包名称 参数是目标应用程序 完全限定的包名称,如 在package属性中声明 中的清单元素 应用程序的清单文件。对于 例如:
市场://细节ID = com.example.android.jetboy
来源:http://developer.android.com/guide/publishing/publishing.html
答案 2 :(得分:20)
您也可以使用支持库中的 ShareCompat 类。
ShareCompat.IntentBuilder.from(activity)
.setType("text/plain")
.setChooserTitle("Chooser title")
.setText("http://play.google.com/store/apps/details?id=" + activity.getPackageName())
.startChooser();
https://developer.android.com/reference/android/support/v4/app/ShareCompat.html
答案 3 :(得分:9)
更确切地说
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.android.example"));
startActivity(intent);
或者如果您想从您的开发者分享您的其他应用。帐户你可以做这样的事情
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://play.google.com/store/apps/developer?id=Your_Publisher_Name"));
startActivity(intent);
答案 4 :(得分:8)
调用此方法:
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 the App at: https://play.google.com/store/apps/details?id=" + appPackageName);
sendIntent.setType("text/plain");
context.startActivity(sendIntent);
}
答案 5 :(得分:5)
要自动填写应用程序名称和应用程序ID,您可以使用:
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:"));
答案 6 :(得分:2)
我知道这个问题已经得到解答,但我想分享一个替代解决方案:
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"));
答案 7 :(得分:1)
最后这个代码对我来说是打开我们android的电子邮件客户端。 试试这个片段。
Intent testIntent = new Intent(Intent.ACTION_VIEW);
Uri data = Uri.parse("mailto:?subject=" + "Feedback" + "&body=" + "Write Feedback here....." + "&to=" + "someone@example.com");
testIntent.setData(data);
startActivity(testIntent);
答案 8 :(得分:1)
根据 official docs 在 2021 年的首选方式是
fun shareTextToOtherApps(message: String) {
val sendIntent: Intent = Intent().apply {
action = Intent.ACTION_SEND
putExtra(Intent.EXTRA_TEXT, message)
type = "text/plain"
}
val shareIntent = Intent.createChooser(sendIntent, null)
startActivity(shareIntent)
}
答案 9 :(得分:0)
实际上是用户之间剪切app的最佳方式,谷歌(firebase)证明了新技术Firebase动态链接通过几行你可以做到 这是文档 https://firebase.google.com/docs/dynamic-links/ 代码是
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
// ...
}
}
});
答案 10 :(得分:0)
Kotlin扩展程序,用于共享操作。您可以共享任何内容,例如链接
fun Context.share(text: String) =
this.startActivity(Intent().apply {
action = Intent.ACTION_SEND
putExtra(Intent.EXTRA_TEXT, text)
type = "text/plain"
})
用法
context.share("Check https://stackoverflow.com")