2013-02-13 2 views
1

앱에 알림이 통합되어 있습니다. 두 개의 경우 ( ) NotificationCompat.Builder가있는 Pre Jelly Bean 알림 및 빌더와 함께 젤리 빈 알림 게시. 이렇게하면 큰 텍스트와 동작을 post jelly bean 버전으로 관리 할 수있게되며 2 ~ 3 시간 동안 작동하지만 이상한 방법으로 JB는 아래에서 동일한 결과를 얻었습니다. 사전 JB에 대한Android Jelly Bean 알림 기능이 이상하게 동작합니다.

코드 :

notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
    PendingIntent pint = PendingIntent.getActivity(context, 0, notificationIntent, 0); 

    NotificationCompat.Builder notif = new NotificationCompat.Builder(context) 
    .setContentTitle(nMessage.getTitle()) 
    .setContentText(nMessage.getMessage()) 
    .setTicker(nMessage.getTitle()) 
    .setWhen(when) 
    .setPriority(NotificationCompat.PRIORITY_HIGH) 
    .setSmallIcon(R.drawable.ic_ttd_petales) 
    .setDefaults(Notification.DEFAULT_LIGHTS| Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE) 
    .setAutoCancel(true) 
    .setContentIntent(pint); 
    notification= notif.build(); 
    notificationManager.notify(0, notification); 

코드 JB를위한 이상 :

Builder bigTextNotification = new Notification.Builder(context) 
     .setContentTitle(nMessage.getTitle()) 
     .setTicker(nMessage.getTitle()) 
     .setContentText(nMessage.getMessage()) 
     .setWhen(when) 
     .setPriority(Notification.PRIORITY_HIGH) 
     .setSmallIcon(R.drawable.ic_ttd_petales) 
     .setDefaults(Notification.DEFAULT_LIGHTS| Notification.DEFAULT_SOUND) 
     .setAutoCancel(true) 
     .setContentIntent(pint); 
     if(nMessage.getHasPhone()){ 
     Intent iCall = new Intent(Intent.ACTION_CALL,Uri.parse(nMessage.getPhone())); 
     PendingIntent pintCall = PendingIntent.getActivity(context, 0, iCall, Intent.FLAG_ACTIVITY_NEW_TASK); 
     bigTextNotification.addAction(R.drawable.ic_menu_call, context.getResources().getString(R.string.call_ttd), pintCall); 
    } 

    String[] recipients = new String[]{context.getResources().getString(R.string.default_email)}; 
    String subject = context.getResources().getString(R.string.about_offer); 

    Intent iEmail = new Intent(android.content.Intent.ACTION_SEND); 
    iEmail.setType("text/html"); 
    iEmail.putExtra(android.content.Intent.EXTRA_EMAIL, recipients); 
    iEmail.putExtra(android.content.Intent.EXTRA_SUBJECT, subject); 
    PendingIntent pintEmail = PendingIntent.getActivity(context, 1, iEmail, Intent.FLAG_ACTIVITY_NEW_TASK); 
    bigTextNotification.addAction(R.drawable.ic_menu_compose, context.getResources().getString(R.string.call_ttd), pintEmail); 

    Notification notif = new Notification.BigTextStyle(bigTextNotification) 
    .bigText(nMessage.getMessage()) 
    .build(); 
    notificationManager.notify(1000, notif); 

혹시 그런 행동을 발견하거나 뭔가를 놓친 거지?

답변

0

미안하지만이 응용 프로그램을 테스트하기 위해 에뮬레이터를 사용하고 있지는 않지만 실제 전화와 이상한 점은 USB 디버깅 케이블을 연결하면 알림 (JB) 플러그를 뽑으면 버튼이 작동합니다 :)이 문제가 해결되지만이 동작에 대해서는 전혀 알지 못합니다.

1

비슷한 경험을했습니다. 알림을 보내면 큰 텍스트 대신 콘텐츠 텍스트가 표시됩니다. 그런 다음 USB를 분리하면 확장 된 큰 텍스트가 표시됩니다.

이제 USB에 연결하면 "미디어 장치로 연결됨"이라는 알림이 계속 표시됩니다. 'GPS를 사용하여 검색 중'과 같은 다른 알림을 사용하여 동일한 동작을 수행하는지 확인하십시오. 나는한다.

: 다른 규칙뿐만 아니라이처럼 (. 내 테스트 장치가 삼성 갤럭시 러쉬, 그리고 수직 공간이 심각하게 제한)

그래서 안드로이드 Notifications documentation 확장으로 만 상단 알림 표시 있다고하면서, 그것은 본다

알림 목록의 공간이 부족한 경우 맨 위 알림도 축소됩니다.

OS 버전에 따라 축소 또는 한 손가락 드래그로 축소 알림을 확장 할 수 있습니다.