2016-04-02 1 views
3

これは...パッケージ名ではなくアプリケーション名を検索して開くことはできますか?

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Button bClock = (Button) findViewById(R.id.buttonSearch); 

    bClock.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      String packageName = "com.android.gallery3d"; 
      Intent intent = getPackageManager().getLaunchIntentForPackage(packageName); 

      if(intent == null) { 
       Intent marketIntent = new Intent(Intent.ACTION_VIEW); 
       marketIntent.setData(Uri.parse("market://details?id=packagename")); 
       startActivity(marketIntent); 
      } 
      startActivity(intent); 
      } 
     }); 
    } 

主な活動で、私のコードであり、すべての私のアプリを検索するパッケージ名(com.android.gallery3d)を使用しないようにすることができるならば、私の質問はありますか?...例えば、私は "facebook"を検索したいと思って入力してから検索します。

私はそのパッケージ名を使用すると、私は新しいインストールされたアプリを開くことはできませんので..前もって感謝します。

答えて

0

あなたも

CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName,PackageManager.GET_META_DATA)); 

そのマニフェストの<application>タグで定義されている。これは、アプリケーション名を返しますPackageManager

final PackageManager pm = context.getPackageManager(); 
ApplicationInfo ai; 
try { 
    ai = pm.getApplicationInfo(packageName, 0); 
} catch (final NameNotFoundException e) { 
    ai = null; 
} 
final String applicationName = (String) (ai != null ? pm.getApplicationLabel(ai) : "(unknown)"); 

そして、これを使用することができます。

+0

どこにコードを記載しますか? – jvpintang

+0

@jvpintangどこのアクティビティ – Adnan

+0

私はあなたの第1コードをボタンonClickに入れて、どこに第2コードを入れますか? – jvpintang

関連する問題