마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

call_privileged 질문드립니다.

0 추천
call_privileged 를 이용하여 사용자가 전화버튼을 눌렀을때를 캐치하여 제 앱을 띄워주고 있습니다.

 

그런데..다른폰은 다 되던데,

'갤럭시 윈' 이라는 보급형 스마트폰에서만 동작하지 않습니다..

 

정확히는 사용자가 통화버튼을 누르면

[다이얼러] 와 [제 앱] 중 하나를 선택하는 메뉴가 나와야 하는데,

 

갤럭시 윈 이라는 폰에서는 그냥 바로 [다이얼러]로 통화가 걸려버립니다..

 

[다이얼러]가 (기본설정)이 되어있나도 확인해보고, 설정 초기화를 해봐도 안되는데요..

 

혹시 해결법을 아시는분 계신가요?
안드로이드로우 (15,740 포인트) 님이 2014년 2월 14일 질문

3개의 답변

0 추천
 
채택된 답변
자답입니다.

CALL_PRIVILEGED 를 통하여 전화를 거는 건 폰의 특성이었습니다.

 

예를 들어 제 앱에 CALL_PRIVILEGED를 intent-filter로 걸어놓으면

 

안드로이드 다이얼러로 전화를 걸때 CALL_PRIVILEGED를 사용하여 전화를 거는 Device는

제 앱과 다이얼러를 선택하는 메뉴가 나오는거죠.

 

위에 제가 질문 올려놓은 것처럼 갤럭시 윈은 CALL_PRIVILEGED를 이용하여 전화를 거는것 같지 않습니다.

 

테스트를 위하여,

제 앱에 CALL 을 추가로 Intent-filter로 걸어놓고,

또다른 테스트 앱을 개발하여 앱에서 ACTION_CALL 을 intent로 보내어 전화를 걸게하여,

제 앱과 안드로이드 다이얼러를 선택하는 메뉴가 나오는지를 봤는데, 정상적으로 메뉴가 나왔습니다.

 

결국 갤럭시 윈은 안드로이드 기본다이얼러가 전화를 걸때 CALL_PRIVILEGED를 사용하여 전화를 거는것 같지 않다. 가 제 결론입니다.

 

+ )

스카이프 앱을 깔면 안드로이드 기본 다이얼러로 전화를 걸때, 스카이프, 다이얼러를 선택하는 메뉴가 나오는데,

갤럭시 윈에서는 스카이프앱도 메뉴가 뜨지 않습니다.
안드로이드로우 (15,740 포인트) 님이 2014년 2월 21일 답변
안드로이드로우님이 2014년 10월 10일 채택됨
+1 추천

CALL_PRIVILEGED 는 intent action이 아닌 preload앱 용 permission인데.... 어떻게 그걸로 띄우셨다는건지는 모르겠지만...

 

안드로이드가 뭔가를 실행할 떄 "뭘 실행할까?" 하는건 IntentFilter에 의해 결정됩니다.

매니페스트의 해당 activity intent-filter 변경해 보세요.

 

android.intent.action.CALL_BUTTON 이 원하시는 intent action 인가요?

칠리님 (10,910 포인트) 님이 2014년 2월 14일 답변
우선 답변 감사드립니다 ㅠㅠ

죄송합니다 너무 급해서 질문이 정확하지 않앗네요..
매니페스트에서
CALL_PRIVILEGED 를 A 액티비티의 intent-filter에 등록시켰고,

전화액션이 캐치되면 A액티비티가 실행됩니다

그런데..이게 갤럭시 윈에서는 동작을 하지 않더라구요...

그래서 CALL_PRIVILEGED 가 기기의 특성에 따라 동작하지 않을수도 있는가..를 여쭤본것입니다 ㅠㅠ
네 레퍼런스에 보면 granted only system app 이라고 되어있습니다...
+1 추천
다른 폰에서 다 되던게 버그인 것 같습니다.
익명사용자 님이 2014년 2월 14일 답변
...