2017-01-01 1 views
1

알림을 빌드하기 위해 v7의 NotificationCompat를 사용하고 있습니다. 잠금 화면에 대한 정보가 적은 공개 버전과 전화가 잠금 해제 될 때 사용할 수있는 알림 목록에 대한 추가 정보가있는 비공개 버전을 갖고 싶습니다. 안드로이드 개발자 문서의 지시 사항은 꽤 간단합니다 ...하지만 그들은 나를 위해 일하고 있지 않습니다. 잠금 화면에서도 개인 버전을 항상 볼 수 있습니다.내 알림의 공용 버전이 잠금 화면에 표시되지 않는 이유는 무엇입니까?

누군가 내가 잘못하고있는 것을 말해 줄 수 있습니까?

저는 삼성 Galaxy S6에 Android 버전 6.0.1을 실행하고 있습니다. 개인 알림 버전에서는 RemoteViews 클래스를 통해 사용자 정의보기를 설정하고 있습니다. 나는 그것을 고정 정확히 모르겠어요

NotificationCompat.Builder publicNotificationBuilder = (NotificationCompat.Builder) new NotificationCompat.Builder(context) 
       .setContentTitle(expense.name) 
       .setContentText(expense.amount) 
       .setAutoCancel(true) 
       .setSmallIcon(R.drawable.wally_icon) 
       .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)); 
NotificationCompat.Builder notificationBuilder = (NotificationCompat.Builder) new NotificationCompat.Builder(context) 
       .setAutoCancel(true) 
       .setSmallIcon(R.drawable.wally_icon) 
       .setContent(remoteViews) 
       .setVisibility(NotificationCompat.VISIBILITY_PRIVATE) 
       .setPublicVersion(publicNotificationBuilder.build()) 
       .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)); 
notificationManager.notify((int)expense.id, notificationBuilder.build()); 
+0

공고는 보안 lockscrees입니다, 패턴 또는 PIN을 필요 i.e.one을, 당신이 잠겨? –

+0

내 지문으로 나의 자물쇠를 풀어야하지만, 자물쇠 화면으로 간주 될 것입니다. – SnoopDougg

+0

그래야합니다. –

답변

0

하지만 지금은 단지 표준 알림 작업을 사용하여 나를 위해 일하고 :

여기 내 코드입니다.

Intent saveAmountIntent = new Intent(context, SaveAmountReceiver.class); 
Intent changeAmountIntent = new Intent(context, ChangeAmountReceiver.class); 
saveAmountIntent.putExtra("expenseId", expense.id); 
changeAmountIntent.putExtra("expenseId", expense.id); 
PendingIntent saveAmountPendingIntent = PendingIntent.getBroadcast(context, 0, saveAmountIntent, 0); 
PendingIntent changeAmountPendingIntent = PendingIntent.getBroadcast(context, 0, changeAmountIntent, 0); 

NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
NotificationCompat.Builder publicNotificationBuilder = (NotificationCompat.Builder) this.createBaseNotification(context, expense, saveAmountPendingIntent) 
    .setVisibility(NotificationCompat.VISIBILITY_PUBLIC); 
NotificationCompat.Builder notificationBuilder = (NotificationCompat.Builder) this.createBaseNotification(context, expense, saveAmountPendingIntent) 
    .setVisibility(NotificationCompat.VISIBILITY_PRIVATE) 
    .setPublicVersion(publicNotificationBuilder.build()) 
    .addAction(new NotificationCompat.Action.Builder(R.drawable.change_icon, context.getString(R.string.change), changeAmountPendingIntent).build()) 
    .addAction(new NotificationCompat.Action.Builder(R.drawable.save_icon, context.getString(R.string.save), saveAmountPendingIntent).build()); 
notificationManager.notify((int)expense.id, notificationBuilder.build()); 

그리고 내 기본 알림 기능 : 여기에 내가 가진 무엇

private NotificationCompat.Builder createBaseNotification(Context context, Expense expense, PendingIntent deleteIntent) { 
    return (NotificationCompat.Builder) new NotificationCompat.Builder(context) 
     .setContentTitle(expense.name) 
     .setContentText(expense.amount) 
     .setDeleteIntent(deleteIntent) 
     .setAutoCancel(false) 
     .setSmallIcon(R.drawable.my_notif_icon) 
     .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)); 
} 
관련 문제