2012-04-03 9 views
0

ずにバックグラウンドで別のアプリからアプリを更新します。また、アプリ「A」のバージョン2 APKを持つ別のアプリ「B」。アプリ「B」はautamaticallyアプリを更新する必要があります「」バージョン2で、私はそれをこのように行っている:アンドロイド:私はすでにAndroidデバイスにインストールされたバージョン1のアプリ「A」を持っているユーザーの介入

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.parse("file://" + apkPath), APK_MIMETYPE); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

問題は、ユーザーの介入は、(「インストール」ボタンをクリックするように求められます)ことが求められますということですアプリ 'A'を更新する必要があります。アプリ 'A'をバックグラウンドでサイレントに更新する必要があります。

条件:デバイスが根付いていない

  1. システム証明書のキーが用意されています。アプリケーション 'B'は、android.uid.systemというshareduseridを持つシステムアプリとして実行することができます。

それは、上記の条件でサイレントアップグレード、操作を行うことは可能ですか? Runtime.getRuntime().exec() APIを使用してプログラムでシェルコマンドから実行できますか?

+3

ない可能に実行することはできないと思います。ユーザーとのやりとりが行われます。 http://stackoverflow.com/questions/5653151/automatically-install-uninstall-an-application-from-within-another-application –

+0

「不可能です。 http://stackoverflow.com/questions/8077779/android-apks-silent-installation:リンク上でも説明を参照してください –

答えて

0

私はそれがユーザーのやりとりなしには達成できないとは思いません。パッケージマネージャー exmpleスクリプトでアプリケーションをインストールできるシェルスクリプトだけで実現でき、chmod + x sampleが完了していることを確認してください。コマンドラインを介してshまたは

sample.sh

#!system/bin/sh 

pm install -r Myandroid_application_path/my.apk 

Runtime.getRuntime()シェル。execが() は、それはあなたのために動作しますが、私のギャラクシーノート で私のために私が試したHV動作していないのかもしれこのコードはあなたも試してみることができますし、plsの更新を行う場合

  Process proc = null; 

    try { 
     Runtime rt = Runtime.getRuntime(); 
     Process proc= rt.exec("/system/bin/pm install -r /mnt/sdcard/chess.apk"); 

    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     Log.d("in catch", ""+proc.getErrorStream()); 

    } 

私はGscriptとしてアンドロイドのあるいくつかのスクリプトランナーを読んHVしかし、私は根ざし電話上での唯一のowrkが、また、私のギャラクシーノート

関連する問題