2

ファイル サーバーから APK をインストールしようとしていますが、ユーザーがインストールするかどうかを選択したり、アクセス許可の設定/変更を受け入れたりできないように、サイレント モードで実行する必要があります。これは、デバイス ベンダーと協力してアプリケーションを /system/app にプリロードしているため、正当なビジネス要件です。これはカスタムの Android タブレット デバイスであるため、ビジネス ユニットはアプリの更新を確実にプッシュできるようにしたいと考えています (つまり、最新バージョンを強制します)。

通常のセキュリティ制限については理解していますが、ベンダー/メーカー レベルのアプリにはアプリケーションをサイレント インストールするメカニズムがあるようです。ただし、これを行う方法に関する情報は、せいぜい非常にむらがあるようです。

パッケージ インストーラーは /system/app にある必要があり、インストーラーには、インストールするアプリと同じ署名証明書キーが必要です。それは問題ではありませんが、このフローを使用してこの機能を実装する方法に関する情報は、まだ見つけていません。

これまでにこれをやったことがある人はいますか?

4

2 に答える 2

1

私はあなたがこれを行うことができるようにするカスタムAndroidROMを彼らに出荷する必要があるとかなり確信しています(私は彼らのビジネスが楽しむとは思えません)。

通常のデバイスのAmazonAppStoreは、GooglePlayのようにバックグラウンドでサイレントインストールすることはできません。Kindle Fireはこれを実行できるかもしれませんが(私は所有していません)、可能であれば、Amazonによって構築されたカスタムROMで実行されているためです。

最善の方法は、ユーザーにアプリを更新する必要があることを通知するインテントを起動することです。これにより、ユーザーはインストーラーアクティビティに移動し、ユーザーの操作が必要になります。

于 2012-07-11T14:50:18.397 に答える
0

正確な答えではありません。しかし、私たちは最近、Android クライアント サーバー アプリに対して同様の要件に直面しました。

アプリケーションがリクエストでサーバーに接続するたびに、現在の versionCode も送信します。

PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
//pInfo.versionCode;
//pInfo.versionName;

サーバー側では、versionCode をチェックし、新しいバージョンがある場合はクライアントに通知し、クライアントはユーザーに新しいバージョンへのアップグレードを強制します。クライアント アプリは、新しいバージョンにアップグレードするまで機能しません。ただし、明らかにユーザーはインストールしないことを選択できます。

それが役に立てば幸い。

于 2012-07-11T15:01:31.917 に答える