AppWidgetManager requestPinAppWidget не работает предварительный просмотр
Начиная с API 26 можно добавлять виджеты для Домашнего экрана программно. Кроме того в диалог установки виджета можно добавить его "предварительный вид". Все описано на официальном сайте довольно скупо и без примеров, но есть хорошее руководство. Код:
if( Build.VERSION.SDK_INT >= 26 ){
AppWidgetManager awm = (AppWidgetManager) getSystemService( AppWidgetManager.class );
if( awm.isRequestPinAppWidgetSupported() ){
Bundle bundle = new Bundle();
RemoteViews rv = new RemoteViews( BuildConfig.APPLICATION_ID, R.layout.my_widget );
bundle.putParcelable( AppWidgetManager.EXTRA_APPWIDGET_PREVIEW, rv );
awm.requestPinAppWidget( new ComponentName( this, AppWidgetProviderMy.class ), bundle, null );
}
}
Но он не работает в части "предварительного просмотра". Если не составит труда, протестируйте код на работоспособность на ваших устройствах или укажите на ошибку.
Вкратце расскажу результаты своих тестов. Есть у меня Redmi 6A Android 8.1, на нем вообще ничего не работает, хотя isRequestPinAppWidgetSupported() возвращает true. На другом устройстве Samsung TAB-A Android 9 диалог добавления виджета выводится, сам виджет устанавливается, но предварительный просмотр не работает. Зато вызывается PendingIntent который можно передать 3 параметром в requestPinAppWidget в случае успешного добавления, это нужно для вызова активности с настройками.