gpt4 book ai didi

android - PDF 文件无法在牛轧糖 Android 中打开

转载 作者:行者123 更新时间:2023-12-05 07:45:00 24 4
gpt4 key购买 nike

我是 Android 的新手,我遇到了关于如何打开 PDF 文件的问题。在棉花糖和其他 Android 版本中它会打开,但在牛轧糖中则不会。

我的代码是这样的

private void CopyReadAssets()
{
AssetManager assetManager = getResources().getAssets();

InputStream in = null;
OutputStream out = null;
File file = new File(getFilesDir(), "Induction.pdf");
try
{
copyFile(assetManager.open("Induction.pdf"), file);

} catch (Exception e)
{
Log.e("tag", e.getMessage());
}

MimeTypeMap mime = MimeTypeMap.getSingleton();
String ext = file.getName().substring(file.getName().lastIndexOf(".") + 1);
String type = mime.getMimeTypeFromExtension(ext);
try {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
//intent.setDataAndType(getUri(file), type);

Uri uri = Uri.parse("content://com.econnect.team.PdfContentProvider/"+"Induction.pdf");
// Uri uri = FileProvider.getUriForFile(this, getPackageName() + ".PdfContentProvider", file);
intent.setDataAndType(uri, type);

} else {
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setDataAndType(Uri.fromFile(file), type);
Log.e("Uri ", " "+ Uri.fromFile(file));
}
startActivityForResult(intent, 100);

}catch (FileUriExposedException ex){
Log.e("Uri ", "exception: "+ex.getMessage());
}
catch (ActivityNotFoundException anfe) {
Toast.makeText(Menus.this, "No activity found to open this attachment.", Toast.LENGTH_LONG).show();

}
}

private void copyFile(InputStream in, File f) throws IOException
{
try {
FileOutputStream out = new FileOutputStream(f);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
out = openFileOutput(f.getName(), Context.MODE_PRIVATE);
}
else {
out = openFileOutput(f.getName(), Context.MODE_WORLD_READABLE);
}
byte[] buffer = new byte[1024];
int read;
while ((read = in.read(buffer)) != -1) {
out.write(buffer, 0, read);
}
in.close();
out.close();
}catch (Exception e){
Log.e("copy file", e.getMessage());
}
}

有没有人遇到过这样的问题

最佳答案

如果您尝试使用某些第三方应用程序打开存储在应用程序内部存储器中的某些文件,那么您应该使用 FileProvider 来获取该文件的 uri。 https://developer.android.com/reference/android/support/v4/content/FileProvider.html

关于android - PDF 文件无法在牛轧糖 Android 中打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42293150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com