0

私のアプリケーションは複数のアプリケーションに基づいています (それぞれに異なる 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;
    }

ユーザーに一度だけプロンプトを表示して、これをインストールする方法はありますか?

4

1 に答える 1

2

これは、ユーザーがインストール プロセスを 1 回だけ確認する必要があるシームレスなプロセスである必要があります。

幸いなことに、セキュリティ上の理由から、zapi が指摘しているように、これは不可能です。ユーザーには、何がインストールされているかを知り、「いいえ、それはしたくない」と言う権利があります。

もちろん、これらすべてのアプリが組み込まれた独自の ROM mod を作成し、人々にその ROM をインストールするよう説得することは大歓迎です。これにより、ユーザーがアプリごとに選択する必要がなくなります。アプリがプリインストールされたデバイスを配布したい企業は、プロンプトを回避するためだけでなく、改造されたデバイスを入手した後に人々がそれらのアプリをアンインストールするのを防ぐために、このルートを使用します.

于 2012-08-19T14:13:57.637 に答える