如何解决Intent.ACTION_VIEW 不适用于 Android 10 操作系统
在我的应用程序中有一个 pdf,要通过选择设备中已安装的应用程序来打印。直到 Android 9 操作系统它工作正常,但对于 Android 10 操作系统它不起作用。下面是我的代码。尝试使用 android:requestLecacyStorage=true 但没有帮助。
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
try {
getContext().startActivity(new Intent(Intent.ACTION_VIEW).setDataAndType(Uri.fromFile(pdfFile),"application/pdf"));
/*Intent i = new Intent(Intent.ACTION_VIEW);
i.setPackage("com.dynamixsoftware.printershare");
i.setDataAndType(Uri.fromFile(pdfFile),"text/plain");
getContext().startActivity(i);*/
} catch (Exception e) {
//toastMsg.showToast(TransInvoicePDFCreate.this,"No Application match to Open Print File");
}
}
},1000);
也尝试使用 FileProvider
try {
Uri uri = FileProvider.getUriForFile(InventoryPDFCreate.this,getPackageName(),pdfFile);
Intent intent = ShareCompat.IntentBuilder.from(InventoryPDFCreate.this)
.setStream(uri) // uri from FileProvider
.setType("text/html")
.getIntent()
.setAction(Intent.ACTION_VIEW) //Change if needed
.setDataAndType(uri,"pdf/*")
.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(intent); // startActivity(new Intent(Intent.ACTION_VIEW).setDataAndType(Uri.fromFile(pdfFile),"application/pdf"));
} catch (Exception e) {
//toastMsg.showToast(TransInvoicePDFCreate.this,"No Application match to Open Print File");
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。