Android 在实际PDF打开之前打开PDF选择器
目前,我正试图用选择器打开我的pdf文件。我目前遇到的问题是,文件试图在选择器可见之前打开。只有当我从打开的文件返回时,我才能看到选择器并选择我最喜欢的应用程序。我试图根据几个关于如何使用选择器的StackOverflow建议修改我的代码,但即使我尝试了它们,它们也不会起作用 以下是我打开pdf的代码:Android 在实际PDF打开之前打开PDF选择器,android,pdf,filechooser,Android,Pdf,Filechooser,目前,我正试图用选择器打开我的pdf文件。我目前遇到的问题是,文件试图在选择器可见之前打开。只有当我从打开的文件返回时,我才能看到选择器并选择我最喜欢的应用程序。我试图根据几个关于如何使用选择器的StackOverflow建议修改我的代码,但即使我尝试了它们,它们也不会起作用 以下是我打开pdf的代码: case "PDF": Intent pdfIntent = new Intent();
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
}
而不是打电话
Intent intentpdfChooser = pdfIntent.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();
}
这对我很有用。我认为你的应用程序默认行为是直接打开它。是的,这可能是一个选项。我会调查它。这不是问题。我下载了一个应用程序来管理我的默认数据,并清理默认应用程序的pdf格式。现在问题仍然存在:/context.startactivitytentpdfchooser;你为什么要在这里给出上下文,这是在你称之为上下文的活动之外的某个方法中吗?很好的建议!对我来说不起作用,但它仍试图打开,只有当我退出时,我才会被引导到文件选择器:/
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);
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);