在android中分享应用程序链接和apk文件

时间:2018-03-24 07:02:05

标签: android android-intent share-button explicit-intent

我为apk和链接共享链接共享的按钮工作正常,但当应用程序将共享时,apk名称更改为“无标题”我想要与我的apk名称相同的名称

我的链接代码

btnShare.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

           ApplicationInfo app = getApplicationContext().getApplicationInfo();
            String filePath = app.publicSourceDir;
            Intent sharingIntent = new Intent(Intent.ACTION_SEND);
            Uri uri = Uri.parse(filePath);
            sharingIntent.setType("*/*");
            sharingIntent.putExtra(Intent.EXTRA_STREAM, uri);
            sharingIntent.putExtra(Intent.EXTRA_TEXT, "Click to blue link and download thegame. https://drive.google.com/open?id=10Nc5BoYn4NZ_O8ae32UVQwyzdCzFxNy");
            startActivity(Intent.createChooser(sharingIntent, "Share app using"));
        }
    });

1 个答案:

答案 0 :(得分:1)

如果您想分享您的应用链接和apk文件,将其作为单独的任务执行。(带两个按钮)

分享链接可以像你提到的那样完成,因为它是一个文本。

要分享apk文件,首先你需要获取你的应用程序apk文件 as,

 ApplicationInfo packageinfo = context.getPackageManager().getApplicationInfo(yourpackagename, 0);
 File file = new File(packageinfo.publicSourceDir);

然后将文件复制到另一个

try {
    //Make new directory in new location
    File tempFile = new File(getExternalCacheDir() + "/ExtractedApk");
    //If directory doesn't exists create new
    if (!tempFile.isDirectory())
        if (!tempFile.mkdirs())
            return;
    //Get application's name and convert to lowercase
    tempFile = new File(tempFile.getPath() + "/" + "appname" + ".apk");
    //If file doesn't exists create new
    if (!tempFile.exists()) {
        if (!tempFile.createNewFile()) {
            return;
        }
    }
    //Copy file to new location
    InputStream in = new FileInputStream(originalApk);
    OutputStream out = new FileOutputStream(tempFile);

    byte[] buf = new byte[1024];
    int len;
    while ((len = in.read(buf)) > 0) {
        out.write(buf, 0, len);
    }
    in.close();
    out.close();
    System.out.println("File copied.");
    //Open share dialog
    intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(tempFile));
    startActivity(Intent.createChooser(intent, "Share app via"));

} catch (IOException e) {
    e.printStackTrace();
}

来源是here

您可以使用创建的文件路径

进行分享
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
Uri uri = Uri.parse(filepath);
sharingIntent.setType("*/*");
sharingIntent.putExtra(Intent.EXTRA_STREAM, uri);
sharingIntent.putExtra(Intent.EXTRA_TEXT, "Click to blue link and download thegame. https://drive.google.com/open?id=10Nc5BoYn4NZ_O8ae32UVQwyzdCzFxNy");
startActivity(Intent.createChooser(sharingIntent, "Share app using"));

这将根据所选应用程序将内容更改为text / apk