发布于 2014-03-07 11:52:42
这个问题似乎没有答案,但我确实找到了一个解决办法:
Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setDataAndType(uri, "image/jpeg");
intent.putExtra("mimeType", "image/jpeg");
this.startActivity(Intent.createChooser(intent, "Set as:"));发布于 2014-11-24 00:27:37
对我来说,只工作:
Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setDataAndType(uri, "image/*");
intent.putExtra("mimeType", "image/*");
this.startActivity(Intent.createChooser(intent, "Set as:"));如果mime " image /jpeg“应用程序找不到图像。
发布于 2019-05-18 15:22:15
如果应用程序在选择要设置壁纸的应用程序后崩溃,则需要添加
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);一个典型的例子是电子邮件应用程序中的附件。访问电子邮件应该受到权限的保护,因为这是敏感的用户数据。但是,如果将图像附件的URI授予图像查看器,则该图像查看器不再具有打开附件的权限,因为它没有理由持有访问所有电子邮件的权限。 这个问题的解决方案是每个URI的权限:当启动一个活动或返回一个活动的结果时,调用者可以设置Intent.FLAG_GRANT_READ_URI_PERMISSION和/或Intent.FLAG_GRANT_WRITE_URI_PERMISSION。这授予接收活动权限访问意图中的特定数据URI,而不管它是否具有访问与意图相对应的内容提供程序中的数据的任何权限。https://developer.android.com/guide/topics/permissions/overview
val intent = Intent(Intent.ACTION_ATTACH_DATA)
.apply {
addCategory(Intent.CATEGORY_DEFAULT)
setDataAndType(uri, "image/*")
putExtra("mimeType", "image/*")
addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
}
startActivity(Intent.createChooser(intent, "Set as:"))https://stackoverflow.com/questions/22213878
复制相似问题