目前,我正在尝试使用选择器打开我的pdf文件。我目前遇到的问题是文件在选择器可见之前尝试打开。只有当我从打开的文件返回时,我才能看到选择器并选择我喜欢的应用程序。我尝试根据几个关于如何使用选择器的StackOverflow建议来修改我的代码,但即使我尝试过它们也无法工作。
这是我打开pdf的代码:
case "PDF":
Intent pdfIntent = new Intent();
pdfIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
pdfIntent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
pdfIntent.setAction(android.content.Intent.ACTION_VIEW);
Uri contentPDFUri = FileProvider.getUriForFile(context,
"com.ndlp.socialstudy.provider",
my_clicked_file);
pdfIntent.setDataAndType(contentPDFUri,"application/pdf");
Intent intentpdfChooser = pdfIntent.createChooser(pdfIntent, "Open With");
try {
context.startActivity(intentpdfChooser);
} catch (ActivityNotFoundException e) {
Toast.makeText(context, "Please install a PDF app to view your file!", Toast.LENGTH_LONG).show();
// Instruct the user to install a PDF reader here, or something
}
答案 0 :(得分:1)
Intent myIntent = new Intent(Intent.ACTION_VIEW);
myIntent.setData(Uri.fromFile(file));
Intent j = Intent.createChooser(myIntent, "Choose an application to open with:");
startActivity(j);
答案 1 :(得分:0)
而不是打电话
Intent intentpdfChooser = pdfIntent.createChooser(pdfIntent, "Open With");
试
Intent intentpdfChooser = Intent.createChooser(pdfIntent, "Open With");
让Android系统弄清楚哪些应用程序可以处理您的pdfIntent
在我使用的其中一个应用中:
Intent target = new Intent(Intent.ACTION_VIEW);
target.setDataAndType(uri, "application/pdf");
target.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
Intent intent = Intent.createChooser(target, "Open PDF using");
try {
mContext.startActivity(intent);
} catch (ActivityNotFoundException e) {
// Instruct the user to install a PDF reader here, or something
Toast.makeText(mContext, "No Applications found to open pdf", Toast.LENGTH_SHORT).show();
}
它正在为我工作。