2012-03-09 14 views
0

Androidデバイスに現在インストールされているapk(ユーザーのインストール済みとプレインストール済みの両方)のすべてのバージョン番号を確認するための簡単な(より自動化された)方法を見つけようとしています。Androidデバイスでのパッケージバージョンの把握

現在、私はこのようにそれについて行くされています:

。バージョンはapkにあります
b。 apkは通常/ system/app
cにあります。 apk名のパッケージ名は/data/system/packages.xml
dにあります。トリッキーな部分は、アプリケーションNAMEは通常、apkファイル内の文字列リソースにあります。たとえば、strings.xml(デフォルト名)
eです。これは、AndroidManager SDK内でAPIのPackageManagerファミリを使用して行うこともできます

これは非常に時間がかかり、多数の多くのデバイスでこれを実行しています。私はちょうど簡単な方法があると思っています。

いつものように、助けてくれてありがとう、非常に感謝しています。

+0

「バージョン番号」は、アプリケーションのマニフェストのversionCodeとversionNameを意味しますか? – YuviDroid

答えて

0

私はそれをやった、whoooo !!! .....私は、このコードを他の誰かに投稿しています。このコードは、デバイス上のすべてのパッケージ名とバージョン名を見つける必要があります。

import java.util.List; 
import android.app.Activity; 
import android.content.pm.PackageInfo; 
import android.os.Bundle; 
import android.text.method.ScrollingMovementMethod; 
import android.util.Log; 
import android.widget.TextView; 

public class main extends Activity { 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    String bldr = new String(); 

    List<PackageInfo> packs = getPackageManager().getInstalledPackages(0); 
    bldr = "Total packages --> " + packs.size() + "\n"; 

    for(int i=0;i<packs.size();i++){ 
     PackageInfo p = packs.get(i); 
     bldr = bldr + "<" + p.packageName + ">" + "\t" + "v" + p.versionName + "\n"; 
    } 

    TextView tv = new TextView(this); 
    tv.setMaxLines(packs.size() + 2); 
    tv.setMovementMethod(new ScrollingMovementMethod()); 
    tv.setText(bldr); 
    setContentView(tv); 
    Log.w("com.tmobile.pr.showAllPackages", bldr.toString()); 
} 
} 
0

有効であるあなたのアプローチの一つは、次のとおりです。

これは、APIの

残りのPackageManagerファミリを使用してAndroidのSDK内からもを行うことができます...私は持っていますなぜそれがうまくいくと思いますか、それほど信頼できることはしません。 versionCodeが特に翻訳されることはないと考えて、人々がこれらの文字列リソースを使用すると思いますか?

これは非常にタイムコード、PackageManagerを呼び出して、インストールされたアプリケーションを反復、およびミリ秒の一握りを取るべきであるバージョン情報を取得するため

を消費しています。