Я смог получить запас Nexus 7 с 4.4.2 для отправки APK, изменив тип MIME в Intent
на application/zip
. Но это не изменило блок при получении APK. Но поскольку многие/большинство ПЗУ удаляют этот блок, все же полезно иметь возможность отправлять APK из запасных ПЗУ.
PackageManager pm = getPackageManager();
ApplicationInfo appInfo;
try {
appInfo = pm.getApplicationInfo("org.fdroid.fdroid",
PackageManager.GET_META_DATA);
Intent sendBt = new Intent(Intent.ACTION_SEND);
// NOT THIS! sendBt.setType("application/vnd.android.package-archive");
sendBt.setType("application/zip");
sendBt.putExtra(Intent.EXTRA_STREAM,
Uri.parse("file://" + appInfo.publicSourceDir));
sendBt.setClassName("com.android.bluetooth",
"com.android.bluetooth.opp.BluetoothOppLauncherActivity");
startActivity(sendBt);
} catch (NameNotFoundException e1) {
e1.printStackTrace();
}
Это простой пример, потому что он направлен только один Bluetooth Activity
, что я вижу на моих двух устройств (com.android.bluetooth.opp.BluetoothOppLauncherActivity
). К сожалению, активность не всегда называется (например, com.broadcom.bt.app.opp.OppLauncherActivity
), и даже имя пакета может быть другим (например, com.mediatek.bluetooth
).
Вот как справиться с этим:
хорошо я Сорта сделал это, я использовал ZipOutputStream проноситься файлы, а затем отправить их. –
Можете ли вы дать небольшой образец этого 'ZipOutputStream'? – RoCk