10

APIレベル8をターゲットに設定されているアプリの通知に2つのボタンを追加しています。問題は、2つのボタンが2つの大きな灰色のボタンとして表示され、残りの通知とは完全にずれていることです。Nexus7とGalaxyNexusの両方でテストしました。

ここに画像の説明を入力してください

私が見たすべての例には、着信通知のような見栄えの良い黒いボタンがあります: 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);
4

2 に答える 2

11

これは、AndroidManifest.xmlのtargetSdkが11未満であるために発生しています。

11をターゲットにしたときに起こる互換性の変化は、Holoのためのデフォルトのテーマだと思います。あなたの(そして私の)ターゲットは11未満なので、これらのボタンに適用されるべきではないのに、いくつかの互換性のテーマに頼っています。アプリ/アクティビティがHoloに設定されていても、プロセスが異なるため、実際には通知には適用されないと思います。

それは私の推測です。CommonsWareの通知デモを使用し、targetSdkを変更するだけで、この動作が示されます。

于 2012-08-27T22:37:46.873 に答える
0

私は同じ問題を抱えて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ます。しかし、それはそれを解決します。

于 2014-09-24T14:03:28.477 に答える