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 に答える