나는 지난 1 년 동안 안드로이드 기술을 연구 중이다. 현재 안드로이드 4.0.3에서 애플리케이션 수신 전화 자동 응답을 개발하고 싶지만이 버전에서는 어떤 솔루션도 얻지 못하고 있거나 (ITelephony.aidl)이 API를 찾을 수 없습니다. 제발 제안 해주세요.안드로이드 전화 수신 자동 응답 4.0.3
답변
전화 통화에 응답하거나 거부하려면 MODIFY_PHONE_STATE 권한이 필요합니다. 불행히도 2.3 이후부터는 시스템 앱에서만 사용할 수 있습니다. (더 많은 정보 here)
(원래 here에서) 전화를받을 수있는 해결 방법 :
Intent i = new Intent(Intent.ACTION_MEDIA_BUTTON);
KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_HEADSETHOOK);
i.putExtra(Intent.EXTRA_KEY_EVENT, event);
context.sendOrderedBroadcast(i, null);
여기에있는 약간의 논리를 설명해 주시겠습니까? Google에 따르면 KEYCODE_HEADSETHOOK이 전화를 끊습니다. 몇 가지 방법을 시도했지만 아무 것도 얻지 못한다. 이벤트를 전달할 수 있지만 KEYCODE_CALL은 adb (adb 쉘 입력 keyevent 5)를 통해 완벽하게 작동한다. 그러나 코드에서이 필요합니다. 어떤 아이디어? – onetwopunch
위 코드 샘플이 효과가 없습니까? 이 스 니펫은 헤드폰 단추가 헤드폰 연결 상태 인 것처럼 시뮬레이션합니다. 일반적으로이 버튼을 클릭하면 통화에 응답하고 통화가 이미 끝나면 통화를 종료합니다. 해결 방법이므로 모든 장치에서 100 % 시간을 사용할 수 없습니다. OEM의 내부 구현에 따라 다릅니다. – Guy
제 질문을 참조하십시오 : http://stackoverflow.com/questions/12805796/how-to-programmatically-answer-a-call-in-android-4-0-3 – onetwopunch
그것의 작업 코드입니다. 전화 상태 방송 수신자를 사용하여 수신 전화를 먼저 확인하십시오.
filter.addAction("android.intent.action.PHONE_STATE");
mContext.registerReceiver(myCallReceiver, filter);
그런 다음 onReceive (컨텍스트 컨텍스트, 의도 의도)에서 answerPhoneHeadsethook() 함수를 호출하십시오.
private void answerPhoneHeadsethook(Context context) {
// Simulate a press of the headset button to pick up the call
Intent buttonDown = new Intent(Intent.ACTION_MEDIA_BUTTON);
buttonDown.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(
KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HEADSETHOOK));
context.sendOrderedBroadcast(buttonDown,
"android.permission.CALL_PRIVILEGED");
// froyo and beyond trigger on buttonUp instead of buttonDown
Intent buttonUp = new Intent(Intent.ACTION_MEDIA_BUTTON);
buttonUp.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(
KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK));
context.sendOrderedBroadcast(buttonUp,
"android.permission.CALL_PRIVILEGED");
}
이 4.0 안드로이드 2.2에서 작동하고 어떻게 작동하는지 지금은 4.1.2 및 4.2 작동 마지막 줄에 시도 캐치를 추가 한 후 솔직히 그나마 알고 있지만 나를 위해 작동합니다.
Intent headSetUnPluggedintent = new Intent(Intent.ACTION_HEADSET_PLUG);
headSetUnPluggedintent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
headSetUnPluggedintent.putExtra("state", 0);
headSetUnPluggedintent.putExtra("name", "Headset");
try {
sendOrderedBroadcast(headSetUnPluggedintent, null);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
이
뿐만 아니라 전 4.2 에서 테스트 한 안드로이드 4.1.2에서 나를 위해 노력이 여전히 처리 예외를 제공합니다.Log.d(tag, "InSecond Method Ans Call"); // froyo and beyond trigger on buttonUp instead of buttonDown Intent buttonUp = new Intent(Intent.ACTION_MEDIA_BUTTON); buttonUp.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent( KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK)); sendOrderedBroadcast(buttonUp, "android.permission.CALL_PRIVILEGED");
ACTION_HEADSET_PLUG 보안 예외, 권한이 부여되지 않습니다. 비 시스템 응용 프로그램. :( –
참이지만 Manifest에 권한을 입력 할 수는 있지만 작동 중입니다. www.virtualmodelz.com에서 응용 프로그램을 완벽하게 다운로드 할 수 있습니다. – PravinDodia
Android 4.2.2에서 작동하지 않습니다. :(.CALL_PRIVEGED 권한을 추가하려고 시도했습니다. – thomasa88
- 1. 안드로이드 2.1에서 자동 응답 전화
- 2. Wifly에 안드로이드 4.0.3 전화 연결
- 3. Android : 수신 전화 자동 응답, 오디오 파일 재생
- 4. 안드로이드 4.0.3 SDK 관리자
- 5. 안드로이드 4.0.3 소프트 키보드
- 6. 안드로이드 응용 프로그램에서 수신 전화 처리
- 7. 기본 안드로이드 수신 및 발신 전화 화면 교체
- 8. 안드로이드 4.0.3 점점 로컬 IP
- 9. 휴대 전화 - MySQL에서 SMS 수신
- 10. 블루투스 장치와 안드로이드 전화 자동 연결
- 11. 안드로이드 자동 응답 시스템을 만드는 방법
- 12. 수신 전화 차단
- 13. SMS 수신 전화 형식
- 14. 수신 전화 번호 받기
- 15. 수신 전화 별도 수신기
- 16. J2ME : 수신 전화 차단
- 17. 안드로이드의 수신 전화 유형
- 18. 차단 수신 전화
- 19. jQuery로 ajax POST 응답 수신
- 20. android : 수신 전화 화면을 무시하십시오.
- 21. Android 안드로이드 수신 방법/이메일 정보 수신
- 22. 기본 전화 응용 전에 수신 전화 감지
- 23. 자동 전화
- 24. 이전 함수에서 전화 응답
- 25. Android에서 SMS 자동 응답
- 26. 브로드 캐스트 수신기를 통해 수신 된 SMS에 자동 응답 하시겠습니까?
- 27. 안드로이드 전화 걸기 화면
- 28. 가짜 전화 걸기 기본 수신 전화 화면 사용
- 29. 안드로이드 - 전화
- 30. 안드로이드 전화
이 문제가 해결 되었습니까? 후속 조치를 취하십시오. – Guy