如果我卸载了mx播放器,则此代码有效,则不会列出并显示任何应用程序(我的手机中有默认播放器) 异常:在逻辑中未找到处理意图的活动{ act=android.intent.action.VIEW
try {
Intent mVideoWatch = new Intent(Intent.ACTION_VIEW);
mVideoWatch.setDataAndType(Uri.parse(mVideosPath[i]), "video/*");
startActivity(mVideoWatch);
}
catch(Exception e) {
Log.e(TAG,e.getMessage());
}
谢谢大家的回答
得到了解决方案
try {
mVideosPath[i] = "file://"+mVideosPath[i];
// mVideosPath[i] = /storage/emulated/0/Movies/test.mp4
Intent mVideoWatch = new Intent(Intent.ACTION_VIEW);
mVideoWatch.setDataAndType(Uri.parse(mVideosPath[i]),mVideostype[i]);
startActivity(mVideoWatch);
}
catch(Exception e)
{
Log.e(TAG,e.getMessage());
}
<activity android:configChanges="keyboardHidden|orientation|screenSize" android:label="@string/movie_view_label" android:name="com.android.gallery3d.app.MovieActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="rtsp"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="http"/>
<data android:scheme="https"/>
<data android:scheme="content"/>
<data android:scheme="file"/>
<data android:mimeType="video/mpeg4"/>
<data android:mimeType="video/mp4"/>
<data android:mimeType="video/3gp"/>
<data android:mimeType="video/3gpp"/>
<data android:mimeType="video/3gpp2"/>
<data android:mimeType="video/webm"/>
<data android:mimeType="video/avi"/>
<data android:mimeType="application/sdp"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="http"/>
<data android:scheme="https"/>
<data android:mimeType="audio/x-mpegurl"/>
<data android:mimeType="audio/mpegurl"/>
<data android:mimeType="application/vnd.apple.mpegurl"/>
<data android:mimeType="application/x-mpegurl"/>
</intent-filter>
</activity>
/**
* This method is called when the user clicks the button to play the toady's
* special video
*/
public void playVideo(View view) {
File videoFile = new File (
videoPath+"/today_special.mp4");
if (videoFile.exists()) {
Uri fileUri = Uri.fromFile(videoFile);
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(fileUri,
URLConnection.guessContentTypeFromName(fileUri.toString()));
startActivity(intent);
} else {
Toast.makeText(this, "Video file does not exist",
Toast.LENGTH_LONG).show();
}
}
来源:点击此链接
在开始新Intent
之前,请检查是否有处理Activity
:
PackageManager packageManager = getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, 0);
boolean isIntentSafe = activities.size() > 0;
if( isIntentSafe) {
startActivity(intent)
}
在此处查看安卓开发者文档。