プログラムで apk をインストールしようとしていますが、うまくいきません。物理デバイスを対象とする自動テスト フレームワークをセットアップしています。テストを実行する前に、テスト デバイスにビルド サーバーから最新の apk を取得させたいと考えています。ユーザーの同意なしに apk を実際にインストールする一般的な方法がないことは承知していますが、開発者が apk とデバイスの両方を所有している場合に利用できるアプローチがあるかどうか知りたいです。
過去に試したアプローチ (apk は pathName/apkFilename にダウンロードされています):
String command = "adb install " + pathName + apkFilename;
Runtime.getRuntime().exec(command);
と:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(pathName + apkFilename)), "application/vnd.android.package-archive");
getActivity().startActivity(intent);
最初のアプローチを機能させることはできませんでしたが、2 回目の試みでは、ユーザーにインストールを確認するよう求めるシステム ダイアログが作成されます (ほぼ完了ですが、完全ではありません)。これはシステム ダイアログであるため、残念ながら Robotium を使用して確認することはできません。