subir - llamar a otra aplicacion desde android studio
Cómo enviar apk usando la intención de compartir programaticamente en Android (1)
Tengo nombres de paquetes de algunas aplicaciones, así que ahora necesito generar todos los apk de la aplicación y desear enviar usando el intento de compartir.
intenté muchas soluciones posibles, pero no encontré ningún enfoque
uso este enlace pero no funcionó empaquetando mi aplicación y comparto con otros + Android
Gracias por adelantado
Creo que esto debería ayudarte
ArrayList<Uri> arrayListapkFilepath; // define global
//put this code when you wants to share apk
arrayListapkFilepath = new ArrayList<Uri>();
shareAPK(getPackageName());
// you can pass bundle id of installed app in your device instead of getPackageName()
Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
intent.setType("application/vnd.android.package-archive");
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM,
arrayListapkFilepath);
startActivity(Intent.createChooser(intent, "Share " +
arrayListapkFilepath.size() + " Files Via"));
//Method
public void shareAPK(String bundle_id) {
File f1;
File f2 = null;
final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
final List pkgAppsList = getPackageManager().queryIntentActivities(mainIntent, 0);
int z = 0;
for (Object object : pkgAppsList) {
ResolveInfo info = (ResolveInfo) object;
if (info.activityInfo.packageName.equals(bundle_id)) {
f1 = new File(info.activityInfo.applicationInfo.publicSourceDir);
Log.v("file--",
" " + f1.getName().toString() + "----" + info.loadLabel(getPackageManager()));
try {
String file_name = info.loadLabel(getPackageManager()).toString();
Log.d("file_name--", " " + file_name);
f2 = new File(Environment.getExternalStorageDirectory().toString() + "/Folder");
f2.mkdirs();
f2 = new File(f2.getPath() + "/" + file_name + ".apk");
f2.createNewFile();
InputStream in = new FileInputStream(f1);
OutputStream out = new FileOutputStream(f2);
// byte[] buf = new byte[1024];
byte[] buf = new byte[4096];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
out.close();
System.out.println("File copied.");
} catch (FileNotFoundException ex) {
System.out.println(ex.getMessage() + " in the specified directory.");
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
arrayListapkFilepath.add(Uri.fromFile(new File(f2.getAbsolutePath())));
}