상태 표시줄 알림 아이콘 숨기기
3727 단어 Android
하고 싶은 일
상주하는 서비스에서Foreground 속성을 사용하기 위해 Notification을 지정했습니다.
상태 표시줄에 있는 아이콘이 눈에 띄는데 가능하면 삭제하고 싶습니다.
이전에는 빈 Notification 인스턴스를 통해 Foreground 속성을 지정하더라도 알림 영역에 표시되지 않았습니다.
최근 안드로이드에서 빈 notification을 사용하여Foreground 속성을 지정할 때 시스템이 자동으로 생성한 notification을 표시합니다.(Nexus 5를 통해 확인)
(참조: iBattery)
이 글은 알림 표시줄에서 Notification을 삭제할 수는 없지만 상태 표시줄에 대한 알림을 볼 수 없다는 방법을 소개했다.
(사용자가 싫어하는 것은 상태 표시줄에 항상 표시되는 내용...)
할 일
해야 할 일을 이루기 위해서는 두 가지가 있다.
투명 알림 아이콘
이것은 매우 간단하다.Builder#setSmallIcon()에 투명한drawable를 주면 됩니다.
res/drawable/ic_stat_transparent.xml
ic_stat_transparent.xml
<?xml version="1.0" encoding="utf-8"?>
<color xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#00000000" >
</color>
이렇게 하면 알림 표시줄이 펼쳐질 때도 아이콘이 투명하게 유지되므로 이니시에이터 아이콘 등 비트맵을 노티파이션으로 사용합니다.Builder#setLargeIcon()을 사용하여 지정합니다.Sample
Drawable largeIconDrawable = getResources().getDrawable(R.drawable.ic_launcher);
Bitmap largeIconBitmap = ((BitmapDrawable)largeIconDrawable).getBitmap();
notificationBuilder.setLargeIcon(largeIconBitmap);
상태막대의 표시 위치를 오른쪽으로
상태 표시줄에 있는 아이콘의 위치는 API16이 준비한 Notification의 Prority가 지정한 정도입니다.
Notification.Builder#setPrority(int pri)를 사용하여 설정할 수 있습니다.
준비한 상수는요.
PRIORITY_MAX = 2
PRIORITY_HIGH = 1
PRIORITY_DEFAULT = 0
PRIORITY_LOW = -1
PRIORITY_MIN = -2
의 다섯 개.
수치가 클수록 왼쪽에 표시되므로 PRIORITYMIN을 사용합니다.
Sample
// API 16以上のみ指定する
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.JELLY_BEAN) {
notificationBuilder.setPriority(Notification.PRIORITY_MIN);
}
이렇게 투명한 알림 아이콘이 맨 오른쪽에 나타나면 알림 아이콘이 보이지 않습니다.알림란에서도 지울 수 있다면 좋겠지만, 도대체 그게 안 돼...
Reference
이 문제에 관하여(상태 표시줄 알림 아이콘 숨기기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gari_jp/items/77085d1c668d2af9b5f2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)