2

Я создал пользовательскую мягкую клавиатуру с изображениями, и моя задача - отправить выбранное изображение на выбранное в данный момент приложение пользователем, например google-тусовкой, но я могу получить имя и значок установленного пакета приложений с помощью диспетчера пакетов, например, если вы используете google-тусовку приложение означает, что мне нужно получить имя пакета приложения 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; Строка currentpackagename = componentInfo.getPackageName(); Log.d ("currentpackagename:", "#############" + currentpackagename); – MahaJeyaraj

+0

Добро пожаловать – Stallion

+0

@MahaJeyaraj у меня тоже было такое же требование, как и у вас, но выше вы упомянули всегда возвратите пакет android.app.launcher – jagadesh