Facebook 未安装在设备上,但程序包 com.facebook.katana 存在

Facebook not installed on device but package com.facebook.katana exists

我正在尝试检查设备上是否安装了 facebook 应用程序。

在搜索时我发现了这个 link How to check if Facebook is installed Android

基于以上link我的方法如下

PackageManager pm = getPackageManager();
    PackageInfo pinfo=null;
    try {
        pinfo=pm.getPackageInfo("com.facebook.katana",
                PackageManager.GET_ACTIVITIES);
        return ((pinfo!=null)?true:false);
    } catch (PackageManager.NameNotFoundException e) {
        return false;
    }

我检查过设备 facebook 不在已安装的应用程序列表中,但标志始终为真,甚至包管理器也没有抛出 NameNotFoundException。

当我尝试启动 fb 时 activity 没有任何反应

File file = new File(imagePath);
final Intent fbIntent = new Intent(Intent.ACTION_SEND);
fbIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri fileUri = FileProvider.getUriForFile(this, "com.test.provider", file);
fbIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
fbIntent.putExtra(Intent.EXTRA_TEXT,"gudmorning");
fbIntent.putExtra(Intent.EXTRA_STREAM, fileUri);
fbIntent.setType("image/*");
fbIntent.setPackage("com.facebook.katana");
startActivity(fbIntent);

我还检查了程序包名称 "com.facebook.orca" 的代码,这也是 Messenger 应用程序的程序包名称。

执行此检查的可能原因或任何其他方法。

android 系统完全不可能显示有关安装在设备中的应用程序的错误信息。在你的情况下,我已经检查了代码并且它完全没问题,所以当上面的代码显示包 "com.facebook.katana" 时你无法在你的设备中看到 facebook 应用程序的唯一原因是 -

您的 Facebook 应用处于禁用状态

是的,您似乎将 facebook 应用程序作为系统应用程序(预安装到设备),但现在已被禁用。要检查,您可以进入您的设置并找到类似 "Manage Applications" 的内容。转到“所有应用程序”列表的最底部,您应该会在那里找到所有禁用的应用程序。