我正在尝试为用户提供将图像设置为wallpaper / whatsapp dp的选项。
但我坚持使用这段代码
Uri sendUri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.a_day_without_thinking_mobile);
Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
intent.setDataAndType(sendUri, "image/jpg");
intent.putExtra("mimeType", "image/jpg");
startActivity(Intent.createChooser(intent,"Set As"));
它显示一个对话框,任何应用都无法执行此操作。 我也尝试通过这种方法检查我的Uri
ContentResolver cr = getContentResolver();
String[] projection = {MediaStore.MediaColumns.DATA};
Cursor cur = cr.query(sendUri, projection, null, null, null);
if (cur != null) {
if (cur.moveToFirst()) {
String filePath = cur.getString(0);
if (new File(filePath).exists()) {
Log.d("URI: ","File path exist");
} else {
Log.d("URI: ","File not found");
}
} else {
Log.d("URI: ","URI ok but no enty found");
}
cur.close();
} else {
Log.d("URI: ","URI was invalid for some other reason");
}
它始终返回URI无效。但我确信该图像是有效的jpg并存在于原始文件夹中。 我尝试更改URI路径,但没有成功。
答案 0 :(得分:0)
在targetSdkVersion >= 24
后更改了Android文件的读取格式
您可以在此处找到详细信息; https://stackoverflow.com/a/38858040/1367450