gpt4 book ai didi

android - 在 Android 中从我的应用程序读取电子邮件附件文件时找不到文件异常

转载 作者:太空狗 更新时间:2023-10-29 15:26:44 24 4
gpt4 key购买 nike

您好,我正在尝试从我的应用程序中读取电子邮件附件。

当我点击电子邮件附件时,它会打开我的应用程序,我正在尝试使用以下代码读取文件的内容

Intent CallingIntent = getIntent();
Uri data = CallingIntent.getData();
final String scheme = data.getScheme();

if(ContentResolver.SCHEME_CONTENT.equals(scheme))
{
ContentResolver cr = getApplicationContext().getContentResolver();
InputStream is;
try
{
is = cr.openInputStream(data);
if(is == null)
{
return;
}

StringBuffer buf = new StringBuffer();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String str;
if (is!=null)
{
while ((str = reader.readLine()) != null)
{
buf.append(str);
}
}
is.close();
Toast.makeText(getApplicationContext(), buf, Toast.LENGTH_SHORT).show();
}
catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}

当尝试使用语句 is = cr.openInputStream(data); 打开文件时,它给了我一个异常 iFileNotFoundException

任何人都可以建议我如何在我的应用程序中完成此操作,我无需下载即可阅读附件的内容。

最佳答案

您需要从此 URI 中提取文件的真实路径。此函数将为您返回路径。

// replace this
is = cr.openInputStream(data)


//with
is = cr.openInputStream(getPath(data))


public static String getPath(Uri uri) {

String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = BigNoteActivity.instance.getContentResolver().query(
uri, projection, null, null, null);
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}

关于android - 在 Android 中从我的应用程序读取电子邮件附件文件时找不到文件异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23773715/

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