如何启动"设为"意图(壁纸,联系人图片等)

kal*_*lvn 5 android wallpaper android-intent

我在过去的几周内(严肃地)在网上搜索,但我找不到我需要的东西.我只是想开始一个对应于set as action 的intent .它通常提供设置为壁纸设置为联系人图片.然后,如果设备上安装了更多应用程序,也可以列出它们.

这是我想要的一个例子:

在此输入图像描述

我确切地说,我需要支持API级别14及更高级别.我找到了getCropAndSetWallpaperIntent但它只适用于内容URI,这对我来说是一个问题,并且只能在API lvl 19及更高版本上使用.

kal*_*lvn 12

我自己找到了答案:

Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
intent.setDataAndType(imageUri, "image/*");
intent.putExtra("jpg", "image/*");
startActivityForResult(Intent.createChooser(intent,
getString(R.string.set_as)), REQUEST_ID_SET_AS_WALLPAPER);
Run Code Online (Sandbox Code Playgroud)

您只需确保uri是公共的,并且可以通过用户选择的裁剪应用程序访问.