PackageManager无法检查已安装的应用程序

时间:2018-03-06 11:48:14

标签: android

我目前正在构建一个appFacebook集成的Instagram,我需要检查用户{{1}上是否已安装app或不。

我试过了:

device

我已经传递了private boolean appInstalledOrNot(String uri) { PackageManager pm = fragment.getContext().getPackageManager(); boolean app_installed = false; try { pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES); app_installed = true; } catch (PackageManager.NameNotFoundException e) { app_installed = false; } return app_installed ; } "com.instagram.android"(Facebook)作为"com.facebook.katana"名称的URI。

我的代码:

package

我已从我的binding.facebook.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { boolean haveApp = appInstalledOrNot("com.facebook.katana"); if (haveApp) { LoginManager.getInstance().logInWithReadPermissions(SocialMediaSharingFragment.this, Arrays.asList("public_profile", "email")); } else { Toast.makeText(getContext(), "App not installed", Toast.LENGTH_SHORT).show(); } } }); 删除了Facebook应用并运行了代码,但不知怎的,我仍然从phone方法返回true。 同样对appInstalledOrNot也是如此,仍然不起作用。我正在使用Instagram,我正在DataBinding上使用它,而不是Fragment

非常感谢这方面的帮助。 谢谢你的阅读...

1 个答案:

答案 0 :(得分:0)

尝试使用另一个标志:

pm.getPackageInfo(uri, 0);