android 判断一个app是否是输入法

android 判断一个app是否是输入法

 

之前做一个app,需要列出手机中安装的所有包,包括系统apps,但是又需要过滤输入法,于是后来找到这种方法来判断输入法。

 

	public static boolean isInputMethodApp(Context context, String strPkgName) {
		
		PackageManager pkm = context.getPackageManager();
		boolean bIsIME = false;
		PackageInfo pkgInfo;
		try {
			pkgInfo = pkm.getPackageInfo(strPkgName, PackageManager.GET_SERVICES);
			ServiceInfo[] servicesInfos = pkgInfo.services;
			if(null != servicesInfos){
				for (int i = 0; i < servicesInfos.length; i++) {
					ServiceInfo sInfo = servicesInfos[i];
					if(null != sInfo.permission && sInfo.permission.equals("android.permission.BIND_INPUT_METHOD")){
						Log.i("isInputMethodApp ", strPkgName);
						bIsIME = true;
						break;
					};
				}
			}
		} catch (NameNotFoundException e) {
			e.printStackTrace();
		} catch (Exception e) {			
			e.printStackTrace();
		}
		return bIsIME;
	}

  

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。