Исключение безопасности при вызове bindAppWidgetId - PullRequest
4 голосов
/ 19 августа 2010

При разработке приложения Launcher (Homescreen) для Android я столкнулся с исключением из системы безопасности, которого я не понимаю.

  • При вызове метода [bindAppWidgetId ()] [1] изв рамках действия Launcher я получаю это исключение безопасности:

08-19 11: 30: 11.689: ОШИБКА / AndroidRuntime (6032): java.lang.SecurityException: bindGagetId appWidgetId = 99 provider = ComponentInfo {com.android.music / com.android.music.MediaAppWidgetProvider}: Пользователь 10034 не имеет android.permission.BIND_APPWIDGET.

Сначала я подумал, что забыл разрешение BIND_APPWIDGET в моем манифесте., но это определенно есть.

В документации Android API указано следующее:

"Вам необходимо разрешение APPWIDGET_LIST. Этот метод должен использоваться средством выбора AppWidget."

Я попытался добавить разрешение android.permission.APPWIDGET_LIST, но это не решает проблему.

Кроме того, я посмотрел манифест приложения «Настройки» из источников Android, который содержит код AppWidgetPickActivity:есть специальная строка, в которой предлагается указать идентификатор пользователя:

"android: sharedUserId =" android.uid.system "

Может ли это быть связано с моей проблемой?

Если у кого-то есть идея, которая была бы великолепна!

Приветствия, Лоран

Ответы [ 2 ]

6 голосов
/ 27 августа 2010

Я нашел ответ!

BindAppWidgetId () намеренно недоступен для приложений!(проблемы безопасности).

"Разрешение android.permission.BIND_APPWIDGET является разрешением системы. Это разрешение можно получить только в том случае, если пакет установлен как системный пакет (устанавливается в / system / app вместо / data / app) или подписывает ваше приложение сертификатом, который совпадает с вашим образом Android. Таким образом, в основном это означает, что вы можете использовать это разрешение, только если вы также являетесь создателем Androidизображение на вашей платформе / телефоне. "

Вот ссылки на эту информацию:

http://groups.google.com/group/android-developers/browse_thread/thread/231245ba6d1e690f/047b9d3f776d7e54?lnk=gst&q=bindAppWidgetId#047b9d3f776d7e54

http://groups.google.com/group/android-developers/browse_thread/thread/f24e0f484a79d529/ef84188e8533a125?lnk=gst&q=bindAppWidgetId#ef84188e8533a125

0 голосов
/ 19 августа 2010

Быстрый поиск в Google показывает, что android.permission.APPWIDGET_LIST является пригодным для использования разрешением, даже если оно не указано в документации API.

...