0

ステータスバーから消えることのない永続的な通知を設定する必要があるAndroidアプリケーションを開発しています。すべてが適切に設定されていますが、通知にはテキストなどを含めずに完全な背景を使用する必要があります。スクリーンショットを添付しましたので。

Yandex検索アプリのような通知の背景

私は次のコードを使用しました:

String notificationTitle = "Here My App Name Goes";
        String notificationMessage = "Search with ---------";

        Intent targetIntent = new Intent(Intent.ACTION_MAIN);
        targetIntent.setClassName(this, this.getClass().getName());

        int requestCode = AppSingleton.NOTIFICATION_ID_ALWAYS;

        PendingIntent contentIntent = PendingIntent.getActivity(this,
                requestCode, targetIntent, 0);
        String statusBarTickerText = "Search from ----------";
        int icon = R.drawable.ic_launcher;

        Notification notification = new Notification(icon,
                statusBarTickerText, System.currentTimeMillis());
        notification.flags = Notification.FLAG_ONGOING_EVENT
                | Notification.FLAG_NO_CLEAR;
        notification.setLatestEventInfo(this, notificationTitle,
                notificationMessage, contentIntent);

        nm.notify(AppSingleton.NOTIFICATION_ID_ALWAYS, notification);

アプリのアイコンを設定してテキストを書き込むことはできますが、提供されているスクリーンショットであるため、完全な背景を設定する必要があります。

このprmから抜け出すのを手伝ってください。

4

1 に答える 1

2

私は自分の問題の解決策を手に入れました。コードを変更してカスタム通知レイアウトを作成する必要があります。以下は私の編集したコードです。

Notification notification = new Notification(
                R.drawable.ic_launcher, "All ----",
                System.currentTimeMillis());

        RemoteViews contentView = new RemoteViews(getPackageName(),
                R.layout.notification);

        notification.contentView = contentView;
        final Intent notificationIntent = new Intent(this,
                MainActivity.class);

        notificationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                | Intent.FLAG_ACTIVITY_CLEAR_TOP);

        nm = (NotificationManager) getSystemService(MainActivity.NOTIFICATION_SERVICE);

        notification.flags |= Notification.FLAG_NO_CLEAR;
        notification.flags |= Notification.FLAG_ONGOING_EVENT;

        PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
                notificationIntent, 0);
        notification.contentIntent = contentIntent;

        nm.notify(AppSingleton.NOTIFICATION_ID_ALWAYS, notification);

上記のように、RemoteViewsクラスは問題なく私の仕事をしました。レイアウトを作成し、ここで参照しました。そして、ブームは私の通知の背景を得ました。

于 2012-11-02T18:14:26.517 に答える