2017-01-29 13 views
0

アプリのパッケージ名を知りたいのですが、そのアプリのアプリ名しか知りません。その名前だけで電子メールアプリケーションのパッケージ名を知りたいのですが、どうすればいいのですか?
私はちょうどそのアプリケーションの名前を知っています。別のアプリのパッケージ名をアプリ名で取得する

final PackageManager pm = getPackageManager(); 
//get a list of installed apps. 
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA); 

for (ApplicationInfo packageInfo : packages) { 
    Log.d(TAG, "Installed package :" + packageInfo.packageName); 
    Log.d(TAG, "Launch Activity :" + pm.getLaunchIntentForPackage(packageInfo.packageName)); 
} 

これはすべてのアプリのパッケージ名を取得するコードですが、特定のアプリを知る必要があります。

+0

はおそらく(言語タグを追加し、使用しているプラ​​ットフォームを指定することを検討できます

final PackageManager pkgmanager = getPackageManager(); String TAG = "Application Info"; //Return a list of installed apps. List<ApplicationInfo> packages = pkgmanager.getInstalledApplications(PackageManager.GET_META_DATA); for (ApplicationInfo pkgInfo : packages) { Log.d(TAG, "Installed package :" + pkgInfo .packageName); Log.d(TAG, "Source dir : " + pkgInfo .sourceDir); } 

希望を取得するのに役立ちますコードですアンドロイド) –

+0

私はアンドロイドスタジオ2.1.3 – rocky

+0

を使用しています。タグを追加します。アンドロイドなど、人々はこの質問を見ることができないためです。 – josedlujan

答えて

1

アプリ名が一意ではないので、あなたのリクエストされたアプリ名と一致する複数のパッケージ名を持つことができます。あなたは結果を得たかどうかを確認するためにTextUtils.isEmptyメソッドを使用

public String getPackNameByAppName(String name) { 
    PackageManager pm = context.getPackageManager(); 
    List<ApplicationInfo> l = pm.getInstalledApplications(PackageManager.GET_META_DATA); 
    String packName = “”; 
    for (ApplicationInfo ai : l) { 
     String n = (String)pm.getApplicationLabel(ai); 
     if (n.contains(name) || name.contains(n)){ 
      packName = ai.packageName; 
     } 
    } 

    return packName;  
} 

のか:

は私の関数は一致した最初のパッケージ名を返すように注意してください(あなたは非常に簡単にこのロジックを変更することができます)ない。以下は

+0

ですが、このコードは多くのアプリでは機能しません。 – rocky

+0

設定を開けませんでした – rocky

+0

packNameは何に初期化する必要がありますか? – rocky

0

がインストールされているすべてのアプリケーションのパッケージ名この意志は

Summved

関連する問題