web-dev-qa-db-ja.com

NotificationCompat.Builder(getApplicationContext()、CHANNEL_ID)がOreoFirebase通知で機能しない

OreoバージョンFirebaseを使用して通知を表示しようとしているので、ソリューションを取得しても表示されません
NotificationCompat.Builder(this, CHANNEL_ID)しかし、このように表示されています enter image description here

と私 build.gradleファイルは

    apply plugin: 'com.Android.application'

    dependencies {
    compile project(':library')
    compile project(':camerafragment')
    compile 'com.google.Android.gms:play-services:11.0.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.mcxiaoke.volley:library:1.0.17'
    compile 'com.Android.support:appcompat-v7:26.0.0-alpha1'
    compile 'com.Android.support.constraint:constraint-layout:1.0.2'
    compile 'com.Android.support:recyclerview-v7:26.0.0-alpha1'
    compile 'com.Android.support:cardview-v7:26.0.0-alpha1'
    compile 'com.google.firebase:firebase-messaging:11.0.0'
    compile 'com.google.Android.gms:play-services-maps:11.0.0'
    compile 'com.facebook.Android:facebook-Android-sdk:[4,5)'
    compile 'com.Android.support:design:26.0.0-alpha1'
    compile 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
    compile 'com.jakewharton:butterknife:7.0.1'
    compile 'com.google.Android.gms:play-services-auth:11.0.0'
    compile 'net.gotev:uploadservice:2.1'
    compile 'com.google.firebase:firebase-auth:11.0.0'
    compile 'com.google.code.gson:gson:2.8.0'
    compile 'com.Android.support:support-v4:26.0.0-alpha1'
    }

    Android {

    compileSdkVersion 27
    buildToolsVersion "27.0.0"
    dexOptions {
        javaMaxHeapSize "4g"
    }
    defaultConfig {
        applicationId "com.trashmap"
        minSdkVersion 17
        targetSdkVersion 27

        // Enabling multidex support.
        multiDexEnabled true
        versionCode 17
        versionName "1.16"
        testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
           // shrinkResources true//new add to reduce size
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }

    }



      sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            Java.srcDirs = ['src']
            res.srcDirs = ['res']
        }
    }
}

apply plugin: 'com.google.gms.google-services'
6
Soni_ji
_NotificationCompat.Builder (Context context)
_

このコンストラクターは、APIレベル26.1.0で非推奨になりました。

代わりにNotificationCompat.Builder(Context, String)を使用してください。投稿されるすべての通知では、NotificationChannelIDを指定する必要があります。

そして、_compile 'com.Android.support:support-v4:26.0.0-alpha1'_を定義したので、サポートライブラリのバージョン番号を変更する必要があります。

3
Kuls

ドキュメントには、ビルダーメソッドNotificationCompat.Builder(Context context)が非推奨になっていることが記載されています。そして、channelIdパラメーターを持つコンストラクターを使用する必要があります。

NotificationCompat.Builder(Context context、String channelId) https://developer.Android.com/reference/Android/support/v4/app/NotificationCompat.Builder.html

このコンストラクターは、APIレベル26.0.0-beta1で非推奨になりました。代わりにNotificationCompat.Builder(Context、String)を使用してください。投稿されるすべての通知では、NotificationChannelIDを指定する必要があります。 https://developer.Android.com/reference/Android/app/Notification.Builder.html

このコンストラクターはAPIレベル26で非推奨になりました。代わりにNotification.Builder(Context、String)を使用してください。投稿されるすべての通知では、NotificationChannelIDを指定する必要があります。ビルダーセッターを再利用する場合は、channelIdを使用してビルダーを作成し、そのビルダーをヘルパーメソッドに渡して、そのメソッドで優先設定を設定できます。

それが機能するように、この1つの希望を試してください...

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(getContext(), "CHANNEL_ID");

        notificationBuilder.setAutoCancel(true)
                .setDefaults(Notification.DEFAULT_ALL)
                .setWhen(System.currentTimeMillis())
                .setSmallIcon(R.drawable.ic_launcher)
                .setTicker("Dilip21")
                .setContentTitle("Default notification")
                .setContentText("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
                .setContentInfo("Info");

NotificationManager notificationManager = (NotificationManager) getContext().getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(1, notificationBuilder.build());
5
Dilip