Sunday, January 16, 2011

PackageManager (ApplicationInfo)

Android SDKには, PacageManagerという,デバイス上にインストールされたアプリケーションパッケージに関する情報を扱うクラスが提供されております。
これで,どんな情報が取得できるか,試してみました。

最初は, public abstract List getInstalledApplications (int flags)で得られるApplicationInfoにどんな情報が含まれているかについて調べてみました。


    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
        mPackageManager = getPackageManager();
        getApplicationInfoList();
    }

    private void getApplicationInfoList() {
        List installedAppList = mPackageManager
                .getInstalledApplications(PackageManager.GET_META_DATA | 
                        PackageManager.GET_SHARED_LIBRARY_FILES | 
                        PackageManager.GET_UNINSTALLED_PACKAGES);
        showApplicationInfos(installedAppList);
    }

    private void showApplicationInfos(List infos) {
        if (infos != null) {
            for (ApplicationInfo info : infos) {
                showApplicationInfo(info);
            }
        }
    }

    private void showApplicationInfo(ApplicationInfo info) {
        if (info != null) {
            Log.d(TAG, "showApplicationInfo");
            Log.d(TAG, "className: " + info.className);
            Log.d(TAG, "packagename: " + info.packageName);
            Log.d(TAG, "name: " + info.name);
        }
    }


結果は,こんな感じです。

D/PkgInfoSampleAppActivity(20363): showApplicationInfo
D/PkgInfoSampleAppActivity(20363): className: null
D/PkgInfoSampleAppActivity(20363): packagename: com.sonyericsson.android.contentmanager.contentprovider.webmedia
D/PkgInfoSampleAppActivity(20363): name: null
D/PkgInfoSampleAppActivity(20363): showApplicationInfo
D/PkgInfoSampleAppActivity(20363): className: null
D/PkgInfoSampleAppActivity(20363): packagename: com.noshufou.android.su
D/PkgInfoSampleAppActivity(20363): name: null
D/PkgInfoSampleAppActivity(20363): showApplicationInfo
D/PkgInfoSampleAppActivity(20363): className: null
D/PkgInfoSampleAppActivity(20363): packagename: com.damburisoft.android.app.showmyicon
D/PkgInfoSampleAppActivity(20363): name: null
packagename は得られましたが,nameやclassNameはなぜかnullです。もっと詳細な情報を得るにはどうしたらいいか,引き続き課題です。

No comments: