私のアプリケーションは複数のアプリケーションに基づいています (それぞれに異なる apk 署名があります)。1 つの apk をインストールしたいのですが、1 回の確認の後、デバイスはすべてのアプリケーションを「バンドル」にインストールする必要があります。
アプリケーションのバンドルをなんとかインストールできましたが、インストールするたびに、インストール前に確認があります(以下を参照)。
これは、ユーザーがインストール プロセスを 1 回だけ確認する必要があるシームレスなプロセスである必要があります。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
installAPK(R.raw.apk0, 0);
}
private void installAPK(int apk, int apk_code) {
try {
InputStream in = this.getResources().openRawResource(apk);
byte[] b = new byte[in.available()];
int read = in.read(b);
// String tempFileName = "currentapk.apk";
FileOutputStream fout = openFileOutput(tempFileName,
MODE_WORLD_READABLE);
fout.write(b);
fout.close();
in.close();
File tempFile = getFileStreamPath(tempFileName);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(tempFile),
"application/vnd.android.package-archive");
startActivityForResult(Intent.createChooser(intent, "install"),
apk_code);
}
catch (Exception ex) {
ex.printStackTrace();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
File tempFile = getFileStreamPath(tempFileName);
if (tempFile.delete()) {
Log.d("******PACKAGING******", "FILE DELETED!");
}
switch (requestCode) {
case 0: {
installAPK(R.raw.apk1, 1);
break;
}
case 1: {
installAPK(R.raw.apk2, 2);
break;
}
case 2: {
installAPK(R.raw.apk3, 3);
break;
}
ユーザーに一度だけプロンプトを表示して、これをインストールする方法はありますか?