Android 4.0: виджеты не появляются?

У меня есть виджет, который я создал против Android 2.1, который был прекрасен и продавался на рынке.

У меня был пользователь, жалующийся, что он купил его, и он никогда не появлялся на его устройстве Android 4.0.

Я загрузил эмулятор 4.0, запустил его из Eclipse, он сообщил об успешной установке, и на самом деле я вижу его в списке «Приложение для просмотра виджета», и я могу запустить его там, и он кажется прекрасным, но он не показывает где-нибудь в разделе «Виджеты» – я не могу найти его, чтобы перетащить его на главный экран! Я предполагаю, что это то же самое, что видит пользователь.

Любая идея, что здесь происходит? Почему это нормально в 2.1, но не отображается в списке на 4.0, даже после успешной установки?

Это мой файл layout \ widget.xml, если это поможет:

      

И xml \ widget_provider.xml:

    

Итак, вот решение, которое я придумал:

Вам потребуется активность, которая появится на панели запуска. Итак, сначала у нас есть старый приемник виджетов, например:

         

И тогда нам нужно какое-то действие, с установкой MAIN и LAUNCHER:

        

Насколько я могу вам сказать, ДОЛЖЕН делать это, даже если ваш виджет просто должен быть чистым виджетами без каких-либо связанных действий. По крайней мере, сделайте одно фиктивное действие, которое запустит экран, в котором говорится: «Теперь ваш виджет готов к использованию! Ищите его под виджетами и перетащите его на главный экран!»

В моем случае мой виджет запустил действие, когда вы его нажали, поэтому я сделал это действие в LAUNCHER / MAIN и просто добавил одноразовое всплывающее диалоговое окно, в котором в основном говорится: «Вы можете запускать это как приложение, но можете захотеть использовать вместо этого виджет “.

Обратите внимание, что на эмуляторе 4.0 я никогда не получал, чтобы мой виджет отображался в первый раз перед этим изменением. Простое действие, установленное в MAIN и LAUNCHER, оказалось достаточным, чтобы показать виджет.

После нескольких дней я выяснил решение

поэтому позволяет перейти к любой из ваших действий, которые будут запущены при открытии приложения и в основном мероприятии добавьте только эту строку

sendBroadcast (новый Intent (Intent.ACTION_MAIN) .addCategory (Intent.CATEGORY_HOME));

как пример

 public class Default class extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); sendBroadcast(new Intent(Intent.ACTION_MAIN) .addCategory(Intent.CATEGORY_HOME)); setContentView(R.layout.main); } 

вот и все, это даст системе, что основное приложение теперь запущено, и оно выведет виджет на панель запуска 🙂 простая строка, которая не изменяет ничего в манифесте, просто поддерживайте то, как вы разработали ур-приложение, которое показывает виджет normaly в предыдущих версиях <4.x

У вас такая же проблема. Я исправил его, удалив tags в моем appwidgetprovider.xml(located in res/xml) .

Вам нужно вручную запустить связанное приложение хотя бы один раз, чтобы отобразить виджет. До этого он находится в состоянии, не подлежащем запуску, и он не будет получать трансляции и т. Д.

Мое решение (Виджет 4.1.2) было уверенным, что виджет установлен на внутреннем устройстве.

Согласно: Android Documentation: install-location , вы не должны устанавливать виджеты в External Storage.

Мне пришлось удалить мой виджет, установить его снова, и после этого я увидел изменения!

Полезная ссылка:

http://www.technipages.com/fix-android-app-widgets-not-appearing-on-widget-list

Interesting Posts

Поддерживаемые форматы аудиофайлов в iPhone

Коммутатор или маршрутизатор для локальной сети?

Создание символов 256-цветного и линейного рисования работает в PuTTY

Использование функций xpath в верхнем и нижнем регистре в среде IDE seleniumа

Идентификатор asp.net получает все роли зарегистрированных пользователей

Есть ли способ программно прокрутить представление прокрутки к определенному тексту редактирования?

Ping IP вернул «целевую сеть недоступную», даже с другой сетью

Проблема parsingа текста валюты на десятичный тип

Как получить shift + стрелки и ctrl + стрелки, работающие в Vim в tmux?

Сокращение, чтобы проверить, существует ли объект в массиве для Swift?

Передача массива строк в web-метод с переменным числом аргументов с использованием jQuery AJAX

Получение учетных данных из хранилища учетных данных Windows с использованием C #

Каким должен быть цвет Ripple, colorPrimary или colorAccent? (Дизайн материалов)

Удалить повторяющиеся записи в PostgreSQL

Windows Vista застряла

Давайте будем гением компьютера.