【问题标题】:No Activity found to handle Intent { act=android.intent.action.VIEW dat=fb://page/FACEBOOK_PAGE_ID未找到处理 Intent { act=android.intent.action.VIEW dat=fb://page/FACEBOOK_PAGE_ID 的活动
【发布时间】:2019-04-04 06:29:00
【问题描述】:


在标题中 FACEBBOK_PAGE_ID 是我的 Facebook 页面的整数 ID。

在我的 android 应用程序中,单击按钮说“在 facebook 上关注我们”,我必须重定向应用程序 -
1. 如果安装了 facebook 应用程序并且用户登录 - 重定向到 facebook 页面 facebook 应用程序。
2. 如果安装了 facebook 应用但用户未登录 - 重定向到 facebook 应用中的 facebook 登录页面。
3. 如果未安装 facebook 应用程序 - 在浏览器中打开 facebook 页面 URL。

我用以下代码做到了这一点

@OnClick(R.id.rl_follow_us_on_fb)
    public void onClickFollowUs(){
        Intent facebookIntent = new Intent(Intent.ACTION_VIEW);
        String facebookUrl = getFacebookPageURL(mParentActivity);
        facebookIntent.setData(Uri.parse(facebookUrl));
        startActivity(facebookIntent);
    }



获取facebook页面url的函数是-

public String getFacebookPageURL(Context context) {
        PackageManager packageManager = context.getPackageManager();
        try {
            PackageInfo packageInfo =context.getPackageManager().getPackageInfo("com.facebook.katana", 0); 
            if (packageInfo != null) {
                if (packageInfo.applicationInfo.enabled) {
                    return "fb://page/FACEBOOK_PAGE_ID";
                } else {
                    return FACEBOOK_URL;
                }
            } else {
                return FACEBOOK_URL;
            }
        } catch (PackageManager.NameNotFoundException e) {
            return FACEBOOK_URL; //normal web url
        }
    }



这工作正常,但是当用户启用 Facebook 应用程序(如果它被禁用)并单击“在 Facebook 上关注我们”按钮时应用程序崩溃,并出现以下崩溃:

E/UncaughtException: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=fb://page/FACEBOOK_PAGE_ID }

【问题讨论】:

    标签: android


    【解决方案1】:

    您可以添加打开 Facebook 应用所需的最低 Facebook 应用版本。如果应用版本低于最低版本,您可以将其重定向到Play商店供用户更新。

    要在您的应用程序中获取另一个应用程序的版本名称,您可以使用

    PackageInfo packageInfo = getPackageManager().getPackageInfo("com.facebook.katana", 0); return packageInfo.versionName;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-06
      • 1970-01-01
      • 2017-02-27
      相关资源
      最近更新 更多