팩스 기계로 Android를 사용할 수있는 응용 프로그램을 만들려고합니다. 팩스로 그림을 보내거나 팩스를 받아 그림으로 저장하십시오. 지금까지 나는 처음부터 사용자의 재량에 따라 전화를 가로 챌 수 있는지 확인했습니다. 나는 수신자가 내 프로그램의 매니페스트에 상태가 바뀌었을 때 (IE 수신 전화) 플래그 인 Phone_State 필터를 등록했다.BroadcastReceiver의 AlertDialog
그래서 내 BroadcastReceiver에서 AlertDialog 팝업을 사용하여 사용자에게 팩스 나 전화를 받아들이도록 요청했지만 AlertDialog가 android.view.WindowManager $ BadTokenException을 던져 버리는 것으로 보입니다. 들어오는 호출이있을 때 오류가 발생합니다.
전체 오류 메시지가 나는에 AlertDialog에서 본 바로는
08-08 00:16:14.315: ERROR/AndroidRuntime(275): java.lang.RuntimeException: Unable to start receiver com.android.fax.IncomingFax: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
08-08 00:16:14.315: ERROR/AndroidRuntime(275): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2550)
08-08 00:16:14.315: ERROR/AndroidRuntime(275): at android.app.ActivityThread.access$3000(ActivityThread.java:116)
08-08 00:16:14.315: ERROR/AndroidRuntime(275): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1843)
아래 ... 내 코드는 onReceive (컨텍스트는 arg0, 의도 ARG1) 단지 간단하고 나는에 AlertDialog에 arg0를 통과 코드를 사용하면 컨텍스트는 물론 Window 및 WindowManager도 전달됩니다. 충돌하는 이유는 여기에 더 좋은 방법이 있거나 호출 화면을 오버레이 할 수있는 다른 방법이 있습니까?
첫 번째 의견에 대해 : 그래, 그게 내가 생각한 것인데, 나는 그것에 관한 문서를 찾을 수 없었다. 두 번째 : 좋아, 나는 그것이 활동이 필요하다는 것을 알지 못했다. 정보 주셔서 감사합니다. – Nicholas
@Nicholas : 대부분의 GUI 관련 항목의 경우 메서드 서명에 'Context'만 필요한 경우에도 'Activity'가 필요합니다. – CommonsWare
그래,하지만 토스트가 없어도 할 수있어 Dialog가 필요로하지 않는 것처럼 생각했다. 하지만 기본 클래스 대화 상자를 체크 아웃하고 그것은 활동이 필요하다고 말하고, 먼저 체크 아웃해야합니다. – Nicholas