android - 启动默认 Android 壁纸选择器

标签 android android-intent wallpaper start-activity

我正在尝试启动默认的 Android 壁纸选择器。我正在使用:

Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER);
    startActivity(intent);

此代码有效,但它会打开应用程序选择器。我想直接打开“壁纸”。我的 minSdkVersion 设置为 16。

最佳答案

“默认”您似乎指的是 Android 操作系统附带的壁纸应用程序,而不是设备可能拥有的其他壁纸应用程序。您可以通过在 Intent 中设置组件来强制 Android 启动特定 Activity。

Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER);
intent.setComponent(...);
startActivity(intent);

但是,这是一件有风险的事情。如果您在没有您指定的壁纸应用程序的设备上运行此代码,那么您将收到 ActivityNotFoundException。

您真的需要启动一款特定的壁纸应用程序吗? Android 的一个核心功能是,你说出你想做的事情,它就会找到应用程序来完成它。我不知道你的目标是什么,但另一个可能有用的函数是 PackageManager.resolveActivity。您可以使用它在代码中发现将针对特定 Intent 启动哪个应用程序。

http://developer.android.com/reference/android/content/pm/PackageManager.html

希望这有帮助。

关于android - 启动默认 Android 壁纸选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27697480/

相关文章:

Android SQLite 数据库泄露错误

android - 如何创建这个可绘制的形状

android - 应用程序在 Android Google Play 上不显示,但在从 PC 浏览 Google Play 时会显示

android - Google Play 服务已过时。需要 7571000 但找到 6774470

android - 从 Android 偏好 Activity 跳转到 Activity

android - 在 android 中测试 Intent

android-intent - Android Intents - SetDataAndType 与 setData 和 setType 之间的区别?

python - 我的脚本中处理器的使用情况可笑。如何优化呢?

android - 使用 AppCompat 主题的动态壁纸

C# 更改桌面模式