0

Kotlin 言語を使用してプロジェクトにカスタム通知を実装しようとしています。ただし、通知パネルには表示されませんが、デフォルトではボタンのクリックで動作しています。ContentTitle と ContentText を削除してカスタム コンテンツを設定すると、通知だけが鳴り、何も表示されないとします。

機能:

@RequiresApi(Build.VERSION_CODES.O)
@SuppressLint("RemoteViewLayout")
private fun showNotification() {


    val intent = Intent(this, MainActivity::class.java)
    val pendingIntent = TaskStackBuilder.create(this).run {
        addNextIntentWithParentStack(intent)
        getPendingIntent(0, PendingIntent.FLAG_IMMUTABLE)
    }

    val notificationManager =
        this.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
    val channel = NotificationChannel(
        CHANNEL_ID,
        CHANNEL_NAME,
        NotificationManager.IMPORTANCE_HIGH
    )

    val contentView = RemoteViews(packageName, R.layout.notification_small)
    contentView.setTextViewText(R.id.tvHead, "Woohlah")
    contentView.setTextViewText(R.id.tvDes, "Working Very well")

    val builder = NotificationCompat.Builder(this, CHANNEL_ID)
        .setSmallIcon(R.drawable.ic_notify_status)
        .setContentTitle("Yahoo")
        .setContentText("Koi Mujhe Junglee Kahe")
        .setStyle(NotificationCompat.DecoratedCustomViewStyle())
        .setCustomContentView(contentView)
        .setCustomBigContentView(contentView)
        .setContentIntent(pendingIntent)
        .setAutoCancel(true)

    notificationManager.createNotificationChannel(channel)
    notificationManager.notify(NOTIFICATION_ID, builder.build())
}

XML コード:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">


<ImageView
    android:id="@+id/imageViewNotification"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_centerVertical="true"
    android:contentDescription="@string/dot"
    android:padding="20dp"
    android:src="@drawable/ic_notify_status" />

<TextView
    android:id="@+id/tvHead"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginHorizontal="10dp"
    android:layout_toEndOf="@+id/imageViewNotification"
    android:paddingTop="10dp"
    android:textColor="@color/white"
    android:textSize="18sp"
    android:textStyle="bold"
    tools:text="xxx" />

<TextView
    android:id="@+id/tvDes"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/tvHead"
    android:layout_marginHorizontal="10dp"
    android:layout_toEndOf="@+id/imageViewNotification"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"
    android:textColor="@color/white"
    android:textSize="14sp"
    tools:text="xxx" />

<androidx.appcompat.widget.AppCompatTextView
    android:id="@+id/tvCount"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_alignParentEnd="true"
    android:padding="10dp"
    android:textColor="@color/black"
    android:textSize="14sp"
    tools:text="0" />
</RelativeLayout>
4

1 に答える 1