gpt4 book ai didi

android - 获取 java.lang.SecurityException : Permission Denial while setting wallpaper in Android

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:03:50 28 4
gpt4 key购买 nike

我有一个壁纸应用程序,我允许用户直接从该应用程序设置壁纸。这里我将图像的http url 转换为Bitmap 并调用Android 的WallpaperManager 类。

以下是将 URL 转换为位图并设置到 WallpaperManager 位图中的代码:

private void setWallpaper() {
WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
try {
Bitmap image = getBitMapFromHttpURL();
if (image != null) {
wallpaperManager.setBitmap(getBitMapFromHttpURL());
image.recycle();
image = null;
} else {
Toast.makeText(this, "Failed to set wallpaper",
Toast.LENGTH_LONG).show();
}
} catch (IOException e) {

} catch (Exception es) {

}
}

此行 wallpaperManager.setBitmap(getBitMapFromHttpURL()); 失败,但出现以下异常:

java.lang.SecurityException: Permission Denial: writing com.android.providers.settings.SettingsProvider uri content://settings/system from pid=21407, uid=10133 requires android.permission.WRITE_SETTINGS, or grantUriPermission()
at android.os.Parcel.readException(Parcel.java:1465)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:185)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:137)
at android.content.ContentProviderProxy.insert(ContentProviderNative.java:468)
at android.content.ContentResolver.insert(ContentResolver.java:1190)
at android.provider.Settings$NameValueTable.putString(Settings.java:843)
at android.provider.Settings.putString(Settings.java:6792)
at android.provider.Settings.putString(Settings.java:6717)
at android.app.WallpaperManager.willSendBroadcat(WallpaperManager.java:1124)
at android.app.WallpaperManager.setBitmap(WallpaperManager.java:788)
at com.wallie.WallpaperFullScreenActivity.setWallpaper(WallpaperFullScreenActivity.java:453)
at com.wallie.WallpaperFullScreenActivity.access$1(WallpaperFullScreenActivity.java:448)
at com.wallie.WallpaperFullScreenActivity$WallpaperManagerTask.doInBackground(WallpaperFullScreenActivity.java:473)
at com.wallie.WallpaperFullScreenActivity$WallpaperManagerTask.doInBackground(WallpaperFullScreenActivity.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:238)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)

可能是什么原因?

最佳答案

您得到的异常清楚地定义了您需要在 list 中添加权限。

java.lang.SecurityException: Permission Denial: writing com.android.providers.settings.SettingsProvider uri content://settings/system from pid=21407, uid=10133 requires android.permission.WRITE_SETTINGS, or grantUriPermission()

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>

关于android - 获取 java.lang.SecurityException : Permission Denial while setting wallpaper in Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26879048/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com