用于打开网页的简单 Android 应用程序 link 无法正常工作

Simple AndroidApp to open a web link is not working

我正在观看有关 android 开发的教程视频,他们在其中教授隐式意图。它确实是一个简单的应用程序,它通过应用程序打开 URL 来解释隐式意图的工作原理。无论如何,我遵循了所有步骤,我什至举杯祝酒,看看编辑文本视图是否收到 url 字符串,并想出了这个:

        button = view.findViewById(R.id.button);
        url = view.findViewById(R.id.url);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String urlText = url.getText().toString();
                Toast.makeText(getActivity(), urlText, Toast.LENGTH_SHORT).show();
                //Implicit Intent to open a web page
                Uri webpage = Uri.parse(urlText);
                Intent intent = new Intent(Intent.ACTION_VIEW, webpage);
                if (intent.resolveActivity(getActivity().getPackageManager()) != null) {
                    startActivity(intent);
                }

当我按下按钮时(希望它会询问从哪个应用程序打开 link)它只显示吐司...

我知道这里可能有一个愚蠢的错误,但我看不到它,请帮忙!

在 Android 11 及更高版本上,查询其他包有限制。参见 https://developer.android.com/training/package-visibility

因为你的 intent.resolveActivity(getActivity().getPackageManager()) 失败并且 startActivity() 没有被执行。

我会完全删除 if (intent.resolveActivity(getActivity().getPackageManager()) != null) 并直接调用 startActivity() 而不进行任何检查。如果没有应用程序来处理您的 Intent,则会抛出 ActivityNotFoundException。您可以为此添加 try-catch。