用于打开网页的简单 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。
我正在观看有关 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。