在Nexus 7 / Android 4.1.1上无法完成启动视频的意图

时间:2012-09-25 12:01:33

标签: android video android-intent android-appwidget

我有一个发布视频的appwidget。它适用于我所有的旧设备,甚至是我的4.1模拟器,但是在我的目标设备上无法使用Nexus 7.在较旧的设备上,包括S2,当你点击视频播放的小部件时。在Nexus 7上,小部件会突出显示但不会触发任何内容。

创建意图的配置活动中的代码非常简单:

Intent videoIntent = new Intent(Intent.ACTION_VIEW);
videoIntent.setDataAndType(Uri.parse(selectedPath), "video/*");
PendingIntent pendingIntent = PendingIntent.getActivity(getBaseContext(), 0,    videoIntent, PendingIntent.FLAG_UPDATE_CURRENT);

RemoteViews views = new RemoteViews(getBaseContext().getPackageName(), R.layout.widgetlayout);
views.setImageViewBitmap(R.id.widgetButton, thumbnail);
views.setOnClickPendingIntent(R.id.widgetButton, pendingIntent);

我似乎找不到任何与设备无关的方法来启动视频而不是Intent.ACTION_VIEW。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我找到了答案。这可能适用于运行Android 4.1.1的任何内容,尽管我不需要为运行4.1

的模拟器执行此操作

我原来的代码是:

Intent videoIntent = new Intent(Intent.ACTION_VIEW);
videoIntent.setDataAndType(Uri.parse(selectedPath), "video/*");
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, videoIntent, PendingIntent.FLAG_UPDATE_CURRENT);

但由于某种原因,我必须使用File()和Uri.fromFile。

Intent videoIntent = new Intent(Intent.ACTION_VIEW);
File file = new File(selectedPath);
videoIntent.setDataAndType(Uri.fromFile(file), "video/mp4");
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, videoIntent, PendingIntent.FLAG_UPDATE_CURRENT);