Intereting Posts
Я не могу найти файл debug.keystore TextInputLayout удаляет стиль EditText после установки свойства setError в значение null Сохранить приложение в фоновом режиме Android ListView Drag and Drop для сотовых и ICS «Ошибка: отчет о снижении: false» Обработка onActivityResult в приложении Android с несколькими действиями Android ArrayList пользовательских объектов – Сохранить в SharedPreferences – Serializable? Увеличить и перетащить изображение в Android Каково местоположение базы данных по умолчанию для приложения Android для некорневого устройства? Это то же самое, что и для корней? Мне нужно объяснение для кода «начинающих игр для Android» «Отбор не может быть запущен, и нет новых запусков», когда Eclipse для Android Project Dev Получить индекс объектов в списке Java DialogFragment с дополнительным пространством ниже ListView Как использовать setTag и getTag с пользовательским адаптером Использование JMock на Android Как активировать продукт в приложении в консоли разработчика Google Play, пока приложение находится в черновике?

Серые кнопки при добавлении действий к уведомлениям в Jelly Bean

Я добавляю две кнопки к уведомлению в своем приложении, которое настроено на целевой уровень API 8. Проблема состоит в том, что две кнопки отображаются как две большие серые кнопки, совершенно неуместные с остальными уведомлениями. Я тестировал его как на Nexus 7, так и на Galaxy Nexus.

Введите описание изображения здесь

Все примеры, которые я видел, имеют красивые черные кнопки, такие как уведомление о входящем вызове: http://www.androidng.com/wp-content/uploads/2012/07/android-jelly-bean-notifications.jpeg

Я бы предположил, что это будет легко, но сегодня такой удачи нет. Кто-нибудь знает, где я мог ошибиться? Ниже приведен фрагмент моего кода, который генерирует уведомление с последней библиотекой поддержки.

NotificationManager nm = (NotificationManager) this .getSystemService(Context.NOTIFICATION_SERVICE); android.support.v4.app.NotificationCompat.Builder builder = new android.support.v4.app.NotificationCompat.Builder(this); builder.setContentIntent(contentIntent) .setSmallIcon(R.drawable.ic_stat_radio) .setContentTitle(message) .setTicker(message) .setPriority(android.support.v4.app.NotificationCompat.PRIORITY_HIGH) .setWhen(System.currentTimeMillis()) .setAutoCancel(false) .addAction(android.R.drawable.ic_btn_speak_now, "Play", contentIntent) .addAction(android.R.drawable.ic_dialog_map, "Stop", contentIntent) .setContentText(message); Notification n = builder.build(); //nm.notify(0, n); startForeground(1, n); 

Так что это происходит, потому что ваш targetSdk в вашем AndroidManifest.xml равен <11.

Я считаю, что изменение совместимости, которое происходит, когда вы нацеливаете 11, – это тема по умолчанию, потому что Holo. Поскольку ваша цель (и моя) меньше 11, она прибегает к какой-то теме совместимости, которую она применяет на этих кнопках, даже если она не должна. Я предполагаю, что даже если ваше приложение / активность установлено на Holo, оно фактически не применяется к уведомлению, поскольку они находятся в другом процессе.

Это только моя догадка. Использование демонстрации уведомлений CommonsWare и просто изменение targetSdk показывает это поведение.

Im с той же проблемой, используя Android studio (0.8.11) с Gradle (0.13.0)

 compileSdkVersion 20 buildToolsVersion "20.0" defaultConfig { applicationId "x.xx.xxxxxx" minSdkVersion 10 targetSdkVersion 20 versionCode x versionName "x.xx" } 

Решите его, добавив uses-sdk в Manifest

 <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="20" /> 

Я знаю, что значение Manifest будет переопределено значением Gradle . Но это решает.