我的字符串路径如下
File f = new File(
Environment.getExternalStoragePublicDirectory(File.separator),
"abc");
File file[] = f.listFiles();
然后将此文件数组转换为String数组。
list = new String[file.length];
for (int i = 0; i < file.length; i++) {
list[i] = file[i].getAbsolutePath();
}
现在在另一个类中,我从list数组中获取这些单独的元素并将其传递给
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("file://" + list[index]));
String ext = MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(file).toString());
String type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(ext);
Log.d(TAG,"type = "+type);
intent.setType(type);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
从上面的代码我得到"Sorry, this video can not be played"
错误。
我在这里尝试过很多帖子但是没能成功。请帮助解决这个问题。
答案 0 :(得分:0)
以下代码为我工作。如果任何人解释差异,它会非常有用。
String filePath = data[position];
Log.d(TAG,"onclick of item position = "+position+" filepAth = "+filePath);
File file = new File(filePath);
Log.d(TAG,"file = "+file);
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
String ext = MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(file).toString());
String type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(ext);
Log.d(TAG,"type = "+type);
intent.setDataAndType(Uri.fromFile(file), type);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);