用于查看视频文件的Android隐式意图

时间:2015-06-22 02:59:03

标签: java android android-intent uri avd

在我的Android应用程序中,我有一个按钮,当点击时,启动我选择的外部应用程序来播放视频(我认为这被称为“隐含意图”)。以下是我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中测试我的应用程序时,而不是提示我可以查看视频的外部应用程序菜单,应用程序崩溃。

导致我的应用崩溃的原因是什么?

2 个答案:

答案 0 :(得分:2)

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

<EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:drawableRight="@drawable/ic_mandatory_text_field"/>

答案 1 :(得分:1)

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

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