Android 如何在卸载时删除应用程序附带的所有图像

Android 如何在卸载时删除应用程序附带的所有图像,android,android-widget,wallpaper,Android,Android Widget,Wallpaper,我正在为一个项目创建一个简单的应用程序,它附带一个图像,当你按下按钮时,图像就会变成手机的壁纸 这是我为我的项目所做的,但是如果卸载应用程序,我需要删除墙纸。我该怎么做?保存图像如果您查看Android文档了解意图,卸载应用程序时此文件夹将被删除,您将看到,除您自己的应用程序外,任何其他感兴趣的应用程序(注册接收此广播的其他应用程序)都将接收此广播操作 引自developer.android.com网站: 广播操作:已删除现有应用程序包 从设备上。数据包含包的名称。这个 正在安装的程序包没有收到

我正在为一个项目创建一个简单的应用程序,它附带一个图像,当你按下按钮时,图像就会变成手机的壁纸


这是我为我的项目所做的,但是如果卸载应用程序,我需要删除墙纸。我该怎么做?

保存图像如果您查看Android文档了解
意图,卸载应用程序时此文件夹将被删除,您将看到,除您自己的应用程序外,任何其他感兴趣的应用程序(注册接收此广播的其他应用程序)都将接收此广播操作

引自developer.android.com网站:

广播操作:已删除现有应用程序包 从设备上。数据包含包的名称。这个 正在安装的程序包没有收到此目的

不幸的是,由于您的应用程序无法检测到它正在被删除,因此您无法触发特定的功能来更改设备上的壁纸。如果可能的话(,而不是),一个简单的函数(下面的代码)会向用户显示Select Wallpaper chooser

Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER);
startActivity(Intent.createChooser(intent, "Select Wallpaper"));
这是用户卸载应用程序后必须手动更改的内容

也就是说,就删除所有应用程序创建的文件而言,让Android为您处理。根据API使用以下选项之一:

API大于或等于8:

API 7或更低版本:

类似的内容将让您根据设备API确定要使用哪一个:

int currentAPIVersion = android.os.Build.VERSION.SDK_INT;
if (currentAPIVersion >= android.os.Build.VERSION_CODES.ECLAIR) {
    // USE getExternalStorageDirectory
} else {
    // USE getExternalCacheDir
}

文章的标题和内容是两码事。哪一个是真正的问题?删除所有图像或更改壁纸。到目前为止,您尝试过做什么?如果您删除应用程序附带的图像,那么在卸载后壁纸肯定会消失吗?否?我认为不可能,据我所知,即使在重新启动或SystemUI或Launcher(?)重新启动之前,图像从文件系统中删除,壁纸也会持续存在。我知道你对此无能为力。@user2212171:事实上,没有!一旦图像被设置为壁纸,原始图像是否保留在设备上并不重要。当前墙纸存储在系统分区中。但不要相信我的话。将任何图像设置为墙纸,然后删除该图像并重新启动设备以进行检查和确认。好的,那么卸载后如何使墙纸图像消失我必须对代码/清单做些什么?我认为android会在将图片设置为墙纸时创建自己的副本。删除原始图片不会取消它。但至少它会被删除:)我想你需要有min版本8来完成这项工作,我使用7,这样我就可以使用这个答案