I Make a button for both apk and link share link share is working fine but when app will be share the apk name is changed to "untitled" i want the same name as my apk name
my code for link
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"));
}
});
If you want to share your app link and your apk file, do it as separate task. (with two buttons)
Sharing link can be done as you mentioned since it is a text.
To share apk file,First you need to get your app apk file as,
ApplicationInfo packageinfo = context.getPackageManager().getApplicationInfo(yourpackagename, 0);
File file = new File(packageinfo.publicSourceDir);
Then copy the file to another one
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();
}
source is here
You can share it using created file path
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"));
This will change content as text/apk based on chosen application