Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-使用“设置壁纸”;设置墙纸“;意图_Android - Fatal编程技术网

Android-使用“设置壁纸”;设置墙纸“;意图

Android-使用“设置壁纸”;设置墙纸“;意图,android,Android,有人问了这个问题,但没有真正的答案 Android有一个内置的“设置墙纸”功能,当使用mime“image/jpeg”或长时间点击浏览器中的图像启动活动时,可以使用该功能 我的问题是:如何使用文件Uri以编程方式调用内置的“设置墙纸”功能?似乎没有答案,但我发现了一个解决方法: Intent intent = new Intent(Intent.ACTION_ATTACH_DATA); intent.addCategory(Intent.CATEGORY_DEFAULT);

有人问了这个问题,但没有真正的答案

Android有一个内置的“设置墙纸”功能,当使用mime“image/jpeg”或长时间点击浏览器中的图像启动活动时,可以使用该功能


我的问题是:如何使用文件Uri以编程方式调用内置的“设置墙纸”功能?

似乎没有答案,但我发现了一个解决方法:

    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:"));
仅限我工作:

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“图像/jpeg”应用程序图像

对我来说,这只是工作

 Intent intent = new Intent();
 intent.setAction(Intent.ACTION_ATTACH_DATA);
 intent.addCategory(Intent.CATEGORY_DEFAULT);
 intent.setDataAndType(ContactsContract.Contacts.CONTENT_URI, "image/*");
 intent.putExtra("mimeType", "image/*");
 startActivityForResult(Intent.createChooser(intent, "Select service:"), position);

position
-它是您的:
getIntent().getExtras().getInt(“id_测试”)

如果您的应用程序在选择要设置墙纸的应用程序后崩溃,则需要添加

intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
一个典型的例子是电子邮件应用程序中的附件。对电子邮件的访问应受到权限的保护,因为这是敏感的用户数据。但是,如果向图像查看器提供了图像附件的URI,则该图像查看器将不再具有打开附件的权限,因为它没有理由拥有访问所有电子邮件的权限

此问题的解决方案是每个URI权限:当启动活动或向活动返回结果时,调用方可以设置Intent.FLAG\u GRANT\u READ\u URI\u权限和/或Intent.FLAG\u GRANT\u WRITE\u URI\u权限。这将授予接收活动访问意图中特定数据URI的权限,而不管它是否具有访问与意图对应的内容提供程序中的数据的权限。


我收到错误:无法加载照片。我正在使用一个drawable并获取它的Uri:Uri=Uri.parse(context.getResources().getDrawable(drawable.toString())@NehaAgarwal尝试使用
Uri=Uri.parse(“安卓”)。resource://your.package.here/drawable/image_name“”
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:"))