android - off - 안드로이드 스튜디오 설정창 만들기




Android 자동 알림이 표시되지 않음 (2)

이 코드를 사용하여 알림을 표시하고,

 private void showPushNotification(String title, String message, Intent tapIntent, int notificationID) {
        android.support.v7.app.NotificationCompat.Builder builder = new android.support.v7.app.NotificationCompat.Builder(this);
        builder.setSmallIcon(R.drawable.swiftee_white_logo_notification);
        //Intent tapIntent = new Intent(this, HomeScreenActivity.class);
        //tapIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
        //tapIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        //tapIntent.putExtra(AppConstants.PUSH_MESSAGE, true);
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, tapIntent, PendingIntent.FLAG_ONE_SHOT);
        builder.setContentIntent(pendingIntent);
        builder.setAutoCancel(true);
        builder.setContentTitle(title);
        builder.setContentText(message);
        NotificationManager notificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
        notificationManager.notify(notificationID, builder.build());
    }

Android Auto를 통해 알림을 표시하려고합니다. 내 전화에 알림 표시됩니다. 그러나 Android Auto 에뮬레이터 에는 표시 되지 않습니다 . 이것은 미디어 응용 프로그램입니다.

automotvie_app_desc.xml :

<automotiveApp>
    <uses name="media"/>
</automotiveApp>

이 코드는 내 MediaBrowserService 클래스에 있습니다.

private Notification postNotification(AutoNotificationHelper.Type type) {
    Log.d(TAG, "Post Notification");
    Notification notification = AutoNotificationHelper.createMenuErrorNotification(
            getApplicationContext(), type, mSession);

    if (notification != null) {
        mNotificationManager.notify(TAG, NOTIFICATION_ID, notification);
    }
    return notification;
}

다음은 알림이 생성되는 위치입니다.

static Notification createMenuErrorNotification(Context context, Type type,
                                                MediaSessionCompat mediaSession) {

    MediaControllerCompat controller = mediaSession.getController();
    MediaMetadataCompat mMetadata = controller.getMetadata();
    PlaybackStateCompat mPlaybackState = controller.getPlaybackState();

    if (mMetadata == null) {
        Log.e(TAG, "MetaData is null");
    }

    if (mPlaybackState == null) {
        Log.e(TAG, "Playback state is null");
    }

    if (type.equals(Type.MENU_ERROR)) {
        Bitmap icon = BitmapFactory.decodeResource(context.getResources(), R.drawable.error);

        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context.getApplicationContext());
        notificationBuilder.extend(new android.support.v4.app.NotificationCompat.CarExtender())
                .setStyle(new NotificationCompat.MediaStyle()
                .setMediaSession(mediaSession.getSessionToken()))
                .setSmallIcon(R.drawable.error)
                .setShowWhen(false)
                .setContentTitle(context.getString(R.string.title))
                .setContentText(context.getString(R.string.message))
                .setLargeIcon(icon)
                .setVisibility(NotificationCompat.VISIBILITY_PUBLIC);

        return notificationBuilder.build();
    }

    return null;
}

전화가 아닌 자동 표시 장치에 표시하려면 무엇을 놓치고 있습니까?


here 에서 단계별로 따라 here

이 샘플은 전체 데모를 보여줍니다.

편집하다

미디어 통지의 경우 this 사용할 수 있습니다. 미디어 앱 및 자동 알림에 대한 단계별 설명





android-auto