0

我有一个启动视频的应用程序小部件。它适用于我所有的旧设备,甚至我的 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 更多的与设备无关的方法来启动视频。

有任何想法吗?

4

1 回答 1

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);
于 2012-10-01T01:01:35.017 回答