2011-07-11 15 views
1

オーケー、私はボタンリストこのようにインストールされているすべてのアプリケーションを作るために管理:インストールされているアプリのリストをクリック可能にするにはどうすればいいですか?

public void launcher(View v){ 
     Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); 
     mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);    
     Intent pickIntent = new Intent(Intent.ACTION_PICK_ACTIVITY); 
     pickIntent.putExtra(Intent.EXTRA_INTENT, mainIntent); 
     myMenu.this.startActivity(mainIntent); 

だから私は、ウィンドウ、ダイアログのようにポップアップし、すべてのアプリケーションを一覧表示]ボタンをクリックしたとき。しかし、いずれかのアプリケーションをクリックするとダイアログが閉じ、何も起こりません。これらのアプリケーションをクリック可能にするにはどうすればよいですか? コードは優先され、私はnoobieですので、あなたの答えに特定してください。 ありがとう! :)

+0

モバイルにインストールアプリの情報を取得しますか? –

+0

いいえ、アプリケーションをクリックして開くことができるようにしたいだけです。 – Gabe

答えて

0

ここで私は基本的にあなたのデバイスからすべてのインストールアプリのすべての情報を取得する一つの例を挙げています。

class PInfo { 
private String appname = ""; 
private String pname = ""; 
private String versionName = ""; 
private int versionCode = 0; 
private Drawable icon; 
private void prettyPrint() { 
    Log.v(appname + "\t" + pname + "\t" + versionName + "\t" + versionCode); 
} 
} 

private ArrayList<PInfo> getPackages() { 
ArrayList<PInfo> apps = getInstalledApps(false); /* false = no system packages */ 
final int max = apps.size(); 
for (int i=0; i<max; i++) { 
    apps.get(i).prettyPrint(); 
} 
return apps; 
} 

private ArrayList<PInfo> getInstalledApps(boolean getSysPackages) { 
ArrayList<PInfo> res = new ArrayList<PInfo>();   
List<PackageInfo> packs = getPackageManager().getInstalledPackages(0); 
for(int i=0;i<packs.size();i++) { 
    PackageInfo p = packs.get(i); 
    if ((!getSysPackages) && (p.versionName == null)) { 
     continue ; 
    } 
    PInfo newInfo = new PInfo(); 
    newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()).toString(); 
    newInfo.pname = p.packageName; 
    newInfo.versionName = p.versionName; 
    newInfo.versionCode = p.versionCode; 
    newInfo.icon = p.applicationInfo.loadIcon(getPackageManager()); 
    res.add(newInfo); 
} 
return res; 
} 
関連する問題