只是想确认是否有可能当我点击任何扩展程序的文件时会打开Android手机中的兼容软件,或者显示移动设备中可以打开文件的软件列表,如果它没有'找到任何软件,它会指示用户首先下载软件以打开该特定文件(所有这一切都需要以编程方式完成)。
感谢。 任何帮助将不胜感激。
答案 0 :(得分:3)
为了打开文件,您可以使用以下方法,如果没有可以处理给定文件的应用程序,它只显示Toast
表示没有找到应用程序。
private void viewFile(String filePath, String title, int fileType) {
Uri uri = Uri.parse("file://" + filePath);
Intent intent = new Intent(Intent.ACTION_VIEW);
String dataAndType = getIntentDataAndType(filePath);
intent.setDataAndType(uri, dataAndType);
intent.putExtra(Intent.EXTRA_TITLE, title);
// Verify that the intent will resolve to an activity
if (intent.resolveActivity(getActivity().getPackageManager()) != null) {
startActivity(intent);
} else {
Toast.makeText(getActivity(), "No Application found", Toast.LENGTH_SHORT).show();
}
}
更新: 用于查找文件的mime类型。
private String getIntentDataAndType(String filePath) {
String exten = "";
int i = filePath.lastIndexOf('.');
// If the index position is greater than zero then get the substring.
if (i > 0) {
exten = filePath.substring(i + 1);
}
String mimeType = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(exten);
mimeType = (mimeType == null) ? "*/*" : mimeType;
return mimeType;
}