-1

機能を備えたアプリを作成したい:ボタンをクリックすると、インストールしたアプリが実行されます(このアプリの例)

getInstalledApplications (ボタンは aupeo) を使用してコードを書きましたが、アプリの呼び出し方法がわかりません。助けてください

aupeo.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            final PackageManager pm = getPackageManager();
            List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);

            for (ApplicationInfo packageInfo : packages) {

                Intent intent = pm.getLaunchIntentForPackage(packageInfo.packageName);   
                if (intent != null)  {
                  intent.addCategory(Intent.CATEGORY_LAUNCHER);
                  startActivity(intent);  
                }          
                }


        }

    });
4

2 に答える 2

0

パッケージ名にアプリケーションのパッケージ名が含まれているかどうかを確認してみてください。

aupeo.setOnClickListener(new View.OnClickListener() {

 public void onClick(View v) {
  final PackageManager pm = getPackageManager();
  List<ApplicationInfo> packages = 
                  pm.getInstalledApplications(PackageManager.GET_META_DATA);

  for (ApplicationInfo packageInfo : packages) {
   if(packageInfo.packageName.toLowerCase().
                   contains("tunein".toLowerCase())){

     Intent intent = 
                pm.getLaunchIntentForPackage(packageInfo.packageName);   
      if (intent != null)  {
       intent.addCategory(Intent.CATEGORY_LAUNCHER);
       startActivity(intent);  
    }  
 }        
   }

 }

    });
于 2012-12-18T07:47:33.700 に答える
0

サードパーティ製アプリを起動する簡単な方法については、こちらで説明しています。例のコード:

final Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
final ComponentName cn = new ComponentName("your.package.name", 
                                           "your.package.name.your.Class");
intent.setComponent(cn);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity( intent);

インテントで指定したアプリが電話に存在しない場合、例外がスローされると思います-アプリケーションが電話に存在するかどうかを判断するには、ρяσσρєя K's answer を参照してください。

于 2012-12-18T10:32:59.107 に答える