簡體   English   中英

PackageManager無法檢查已安裝的應用程序

[英]PackageManager can't check for installed apps

我目前正在構建一個具有FacebookInstagram集成的app ,我需要檢查該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""com.facebook.katana" (Facebook)作為package名稱的URI。

我的代碼:

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();
            }

        }
    });

我已經從phone刪除了Facebook App並運行了代碼,但是不知何故我仍然從appInstalledOrNot方法返回了true Instagram也執行相同操作,但仍然無效。 如您所見,我正在使用DataBinding ,並且在Fragment而不是Activity上使用它。

非常感謝您的幫助。 謝謝閱讀...

嘗試使用另一個標志:

pm.getPackageInfo(uri, 0);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM