Android 观看视频文件的隐含意图

Android Implicit Intent for Viewing a Video File

在我的 Android 应用程序中,我有一个按钮,单击该按钮会启动我选择的外部应用程序来播放视频(据我所知,这称为 "implicit intent")。这是来自我的 onCreate 方法的相关 Java 代码。

Button button = (Button) findViewById(R.id.button);

button.setOnClickListener
(
    new Button.OnClickListener()
    {
        public void onClick(View v)
        {
            Intent i = new Intent(Intent.ACTION_VIEW);
            i.setDataAndType(Uri.parse("https://youtu.be/jxoG_Y6dvU8"), "video/*");
            startActivity(i);
         }
    }
);

我希望它能工作,因为我非常仔细地遵循了教程和 Android 开发人员文档,但是当我在 AVD 中测试我的应用程序时,我没有提示外部应用程序菜单观看我的视频,应用程序崩溃。

是什么导致我的应用程序崩溃?

将您的 onClick 方法更改为以下代码。你应该给选择外部播放器的选项。

@Override
public void onClick(View v) {

        Intent intent = new Intent(Intent.ACTION_VIEW);

        intent.setDataAndType(Uri.parse("https://youtu.be/jxoG_Y6dvU8"), "video/*");

        startActivity(Intent.createChooser(intent, "Complete action using"));


}

更改您的代码以添加此检查:

        Intent i = new Intent(Intent.ACTION_VIEW);
        i.setDataAndType(Uri.parse("https://youtu.be/jxoG_Y6dvU8"), "video/*");

        // Check there is an activity that can handle this intent
        if (i.resolveActivity(getPackageManager()) == null) {
            // TODO No activity available. Do something else.
        } else {
            startActivity(i);
        }