Получаете ли вы имя пакета с вашим списком приложений?
Если нет, вы можете использовать этот код списка приложений клавиатуры
InputMethodManager imeManager =
(InputMethodManager) getApplicationContext()
.getSystemService(Context.INPUT_METHOD_SERVICE);
//Keyboard application packages
List<InputMethodInfo> inputMethods = imeManager.getInputMethodList();
for (int i = 0; i < inputMethods.size(); i++) {
InputMethodInfo im = inputMethods.get(i);
String packageName = im.getPackageName();
//Getting package info
try {
PackageInfo pi = getPackageManager().getPackageInfo(packageName, PackageManager.GET_META_DATA);
String appname = pi.applicationInfo.loadLabel(getPackageManager()).toString();
String pname = pi.packageName;
String versionName = pi.versionName;
int versionCode = pi.versionCode;
Drawable icon = pi.applicationInfo.loadIcon(getPackageManager());
Log.e("InputMethods", "appname: "+appname);
Log.e("InputMethods", "pname: "+pname);
Log.e("InputMethods", "versionName: "+versionName);
Log.e("InputMethods", "versionCode: "+versionCode);
Log.e("InputMethods", "icon: "+icon);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
}
Запустить приложение по имени пакета ..
Intent launchIntent = getPackageManager().getLaunchIntentForPackage("package_name");
//null pointer check in case package name was not found
if (launchIntent != null) {
startActivity(launchIntent);
}