我有一个发布视频的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。
有什么想法吗?
答案 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);