0

현재 알림 센터에서 알림을 다시 만드는 Android 앱을 개발 중입니다. 알림 환경을 완전히 재현하려면 앱에서 알림 작업을 사용할 수도 있습니다 (예 : 음악 알림의 뒤로/재생/일시 중지/다음 버튼).Android 알림 작업 아이콘 : 리소스를 찾을 수 없음 예외

Icon icon = notification.actions[0].getIcon(); 
((ImageView)view.findViewById(R.id.action0)).setImageIcon(icon); 

위의 두 번째 줄에는 리소스를 찾을 수 없습니다. 예외가 발생합니다.

E/Icon: Unable to load resource 0x7f020259 from pkg= 
android.content.res.Resources$NotFoundException: Resource ID #0x7f020259 
    at android.content.res.Resources.getValue(Resources.java:2558) 
[...] 

나는 문제가 아이콘이 다른 응용 프로그램에서하고 그렇게 쉽게 액세스 할 수 없습니다,하지만 난 제대로 아이콘에 액세스하는 방법을 알아낼 수 있다고 생각합니다.

리소스 ID가 int 인 경우 다른 앱에서 리소스에 액세스하는 방법을 알고 있지만이 경우 아이콘이 있지만 리소스 ID는 없습니다.

편집 :

문서 : 액션에서 보류 의도를 액세스 https://developer.android.com/reference/android/app/Notification.Action.html#getIcon()

는 Notification.Action.Icon.java이 아이콘 비트 맵을, 그것은 단지 저장할 저장하지 않습니다 완벽하게

+0

안녕하세요 Frecki 그냥 업데이트 ImageViw 초기화 방법은 사용하지 않는 ((이미지 뷰) view.findViewById (R.id.action0)). setImageIcon (상); 시도해보십시오 이미지 뷰 action0 = (이미지 뷰) view.findViewById (R.id.action0); action0.setImageIcon (아이콘); –

+0

이 해결 될 수 있습니다. –

+0

@KrunalPatel 그것을 시도, 그것을 해결하지 않았다 : ( – Frecki

답변

0

작동의 리소스 ID, 앱이 다른 앱의 리소스를 읽을 수 없으면 자체 리소스를 검색하여 ID를 찾을 수 없으므로 예외가 발생합니다. Icon.java에서 Notification.java

public Icon getIcon() { 
    if (mIcon == null && icon != 0) { 
     // you snuck an icon in here without using the builder; let's try to keep it 
     mIcon = Icon.createWithResource("", icon); 
    } 
    return mIcon; 
} 

에서

public static Icon createWithResource(String resPackage, @DrawableRes int resId) { 
    if (resPackage == null) { 
     throw new IllegalArgumentException("Resource package name must not be null."); 
    } 
    final Icon rep = new Icon(TYPE_RESOURCE); 
    rep.mInt1 = resId;  
    rep.mString1 = resPackage  
    return rep; 
} 
+0

그래서 알림에서 아이콘을 얻을 수 있습니까? – Frecki

+0

이 코드를 사용하십시오 : int resource = (int) notification.extras. 비트 맵 비트 맵 = BitmapFactory.decodeResource (packageContext.getResources(), 리소스); 다른 애플 리케이션 패키지의 "작은 아이콘"을 얻을 수 있습니다 ....이 방법은 동작 아이콘을 얻는 방법과 비슷하지 않습니까? – Frecki

+0

소스 코드에 따르면, 아이콘 작성 방법에 따라 달라야합니다. TYPE_BITMAP, TYPE_RESOURCE, TYPE_DATA, TYPE_URI의 네 가지 유형이 있습니다. – Harlan