Я создал пользовательскую мягкую клавиатуру с изображениями, и моя задача - отправить выбранное изображение на выбранное в данный момент приложение пользователем, например google-тусовкой, но я могу получить имя и значок установленного пакета приложений с помощью диспетчера пакетов, например, если вы используете google-тусовку приложение означает, что мне нужно получить имя пакета приложения google hangout и с моей пользовательской клавиатуры мне нужно поделиться выбранными изображениями напрямую с чатом в чате, как сообщение, как я могу решить эту проблему.Как получить в настоящее время выбранное имя пакета приложений в android программно?
ответ
Вы можете получить все установленные детали пакета.
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
класс содержит подробную информацию для пакета
try it...
Строка PackageName = getApplicationContext() getPackageName().
От активности String appPackage = currentContext.getPackageName();
или
String appPackage = getApplicationContext().getPackageName();
спасибо, что нашел решение для этого с помощью этого кода ComponentName componentInfo = runningTaskInfos.get (0) .topActivity; Строка currentpackagename = componentInfo.getPackageName(); Log.d ("currentpackagename:", "#############" + currentpackagename); – MahaJeyaraj
Добро пожаловать – Stallion
@MahaJeyaraj у меня тоже было такое же требование, как и у вас, но выше вы упомянули всегда возвратите пакет android.app.launcher – jagadesh
уже я получил это – MahaJeyaraj