このコードでプログラムで apk をインストールしようとしています:
Intent intent = new Intent(Intent.ACTION_VIEW);
String mimetype = "application/vnd.android.package-archive";
intent.setDataAndType(Uri.fromFile(file), mimetype);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
また、Samsung Galaxy Tab GT-P1000 を除くすべてのデバイスで問題なく動作します。
Galaxy Tab パッケージ マネージャーでインストールが開始されますが、終了することはありません。プログレスバーが無限に表示されます。バックキーでパッケージマネージャーを閉じた後、システムにインストールされているapkが少なくならないことを確認します。
ファイルマネージャーで起動するだけで同じapkをインストールしようとすると、すべて正常に動作します。APK のインストールとパッケージ マネージャーのインストールの進行状況は数秒で完了します。
では、プログラムでインストールするときにパッケージ マネージャーを正しく動作させるにはどうすればよいでしょうか?