0

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

現在、私は次のように取り組んでいます:

を。バージョンは apk
b にあります。apk は通常、/system/app
c にあります。apk 名に対するパッケージ名は、/data /system/packages.xml にあり
ます。注意が必要なのは、アプリケーション NAME が通常、apk ファイルの文字列リソース (strings.xml (デフォルト名) など) にあることです
。これは、API の PackageManager ファミリを使用して Android SDK 内から行うこともできます。

これは非常に時間がかかり、非常に多くのデバイスでこれを行っています。私は、私がそれをどのように行っているかよりも簡単な方法がなければならないと考えています。

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

4

2 に答える 2

0

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

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());
}
}
于 2012-03-13T19:18:33.373 に答える
0

有効な唯一のアプローチは次のとおりです。

これは、API の PackageManager ファミリーを使用して Android SDK 内から行うこともできます。

残り... 確実に機能することは言うまでもなく、なぜそれが機能すると考えるのかわかりません。versionCode特に翻訳する必要がないことを考えると、人々がこれらの文字列リソースを使用すると考える理由は何ですか?

これは非常に時間がかかります

PackageManagerを呼び出し、インストールされているアプリケーションを反復処理し、バージョン情報を取得するコードには、数ミリ秒かかります。

于 2012-03-10T00:27:38.497 に答える