在Jelly Bean中将通知添加到通知时的灰色button

我在我的应用程序中添加了两个button,将其设置为目标API级别8.问题是两个button显示为两个大的灰色button,与其他通知完全不同。 我已经在Nexus 7和Galaxy Nexus上进行了testing。

在这里输入图像说明

我见过的所有例子都有像呼入通知那样漂亮的黑色button: 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); 

Solutions Collecting From Web of "在Jelly Bean中将通知添加到通知时的灰色button"

所以这是因为你的AndroidManifest.xml中的targetSdk <11。

我相信当你瞄准11时发生的兼容性变化就是默认的主题,因为Holo。 由于你的(和我的)目标是小于11,它诉诸于一些兼容性主题,它应用在这些button,即使它不应该。 我认为,即使您的应用程序/活动设置为Holo,但实际上并不适用于通知,因为它们处于不同的过程中。

这只是我的猜测。 使用CommonsWare的通知演示,只需修改targetSdk即可显示此行为。

我有相同的问题,使用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" } 

通过在Manifest添加uses-sdk来解决这个问题

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

我知道Manifest值将 Gradle覆盖 。 但是解决它。