2

我已經創建了圖像的自定義軟鍵盤,我的任務是要發送選定的圖像到用戶目前選擇的應用程序,如谷歌環聊,但我可以使用包管理器像安裝應用程序包名稱和圖標,如果我使用谷歌環聊應用程序意味着我必須獲取Google Hangout應用程序包名稱,並且從我的自定義鍵盤中,我必須將選定的圖像直接共享到環聊聊天對話中,作爲消息,我該如何解決此問題。如何在android中以編程方式獲取當前選定的應用程序包名稱?

回答

1

你可以得到所有已安裝的軟件包的詳細信息。

public ArrayList<PackageInfoStruct> getInstalledApps(Activity mActivity) { 
    ArrayList<PackageInfoStruct> res = new ArrayList<PackageInfoStruct>(); 
    List<PackageInfo> packs = mActivity.getPackageManager() 
      .getInstalledPackages(0); 

    for (int i = 0; i < packs.size(); i++) { 
     PackageInfo p = packs.get(i); 
     PackageInfoStruct newInfo = new PackageInfoStruct(); 
     newInfo.appname = p.applicationInfo.loadLabel(
       mActivity.getPackageManager()).toString(); 
     newInfo.pname = p.packageName; 
     newInfo.datadir = p.applicationInfo.dataDir; 
     newInfo.versionName = p.versionName; 
     newInfo.versionCode = p.versionCode; 
     newInfo.icon = p.applicationInfo.loadIcon(mActivity 
       .getPackageManager()); 
     res.add(newInfo); 
    } 
    return res; 
} 

public class PackageInfoStruct { 
    String appname = ""; 
    String pname = ""; 
    String versionName = ""; 
    int versionCode = 0; 
    Drawable icon; 
    String datadir = ""; 
} 

呼叫getInstalledApps

ArrayList<PackageInfoStruct> installedPackageDetails = getInstalledApps(getActivity()); 

你可以用上面的方法來顯示已安裝的應用程序的列表,並選定你可以從按所選項目的詳細信息。 PackageInfoStruct類包含包的詳細信息

+1

已經得到了 – MahaJeyaraj

1
try it... 

字符串的packageName = getApplicationContext()getPackageName();

1

從活動

String appPackage = currentContext.getPackageName();

String appPackage = getApplicationContext().getPackageName(); 
+0

謝謝我發現使用此代碼的解決方案ComponentName componentInfo = runningTaskInfos.get(0).topActivity; String currentpackagename = componentInfo.getPackageName(); Log.d(「currentpackagename:」,「#############」+ currentpackagename); – MahaJeyaraj

+0

歡迎你 – Stallion

+0

@MahaJeyaraj我也有同樣的要求,但你上面提到的總是返回android.app.launcher包 – jagadesh

相關問題