我想检查设备上是否安装了应用程序。我正在使用下面的代码:
PackageManager pm = context.getPackageManager();
List<PackageInfo> packageInfoList = pm.getInstalledPackages(PackageManager.GET_ACTIVITIES);
if (packageInfoList != null) {
for (PackageInfo packageInfo : packageInfoList) {
Log.d(TAG, "-->"+packageInfo.packageName);
String packageName = packageInfo.packageName;
if (packageName != null && packageName.equals(uri)) {
return true;
}
}
}
return false;
Run Code Online (Sandbox Code Playgroud)
这给了我所有的包裹,但没有给我除外的包裹。我正在尝试找到这个应用程序:rootcloak 和暴露的安装程序无法使用上面的代码找到这些应用程序。
使用下面的代码:
public boolean isAppInstalled(String package_name, String app_name)
{
try {
PackageManager pm = getPackageManager();
PackageInfo info = pm.getPackageInfo("" + package_name, PackageManager.GET_META_DATA);
return true;
}
catch (PackageManager.NameNotFoundException e) {
Toast.makeText(getApplicationContext(), "Your device has not installed " + app_name, Toast.LENGTH_SHORT)
.show();
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
调用该方法如下:
isAppInstalled("com.whatsapp", "Whatsapp"); // it will return true if your device is having whatsApp.
isAppInstalled("com.randomname", "anyname"); //it will return false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6418 次 |
| 最近记录: |