2012-10-14 3 views
-1

나는 내 전화에서 직접 android dallier를 거치지 않고 전화 번호를 호출하는 기능을 가지고 있습니다. 안드로이드 2.2와 2.3, 에서 모든 것이 잘 작동했지만, 4.1, 에 호출 의도는 여전히 전화 걸기 화면으로 이동하고 사용자가 다음 통화 버튼ACTION_CALL이 Android 4.1 젤리 빈에서 다이얼러를 엽니 다.

을 누릅니다 때까지 기다립니다에 책임이 코드 블록 "ACTION_CALL"와 하지 "ACTION_DIAL"되는 것을 직접 전화 번호 :

void makeCall(Context context,String number){ 
Intent callIntent = new Intent(Intent.ACTION_CALL); 
// Add the additional flags required for staring new Activity. 
callIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
callIntent.setData(Uri.parse("tel:"+number)); 
context.startActivity(callIntent); 
} 

또한 호출 권한은 다른 사람이 유사한 문제에 직면했습니다 매니페스트

<uses-permission android:name="android.permission.CALL_PRIVILEGED" /> 
<uses-permission android:name="android.permission.CALL_PHONE" /> 

에서 설정 한?

+0

펌웨어의 일부가 아닌 한'CALL_PRIVILEGED'를 유지할 수 없습니다. 그 외에도'FLAG_ACTIVITY_NEW_TASK'을 제거하십시오. 도움이되지 않는다면 다시 말하십시오. – CommonsWare

+0

안녕하세요, CALL_PRIVILEGED didnt 도움말을 삭제 해 주신 의견에 감사드립니다. FLAG_ACTIVITY_NEW_TASK이 필요합니다. 실제로 내 앱 활동이 실제로 실행되고 있지 않을 때 백그라운드에서 통화 활동을 시작합니다. 하지만 전화 번호가 전화 번호부에 있다면, 다이얼러가 열리지 않으면 전화가 직접 시작되어 내 문제를 해결합니다, 감사합니다 :) (안드로이드 4.1 이후 아마 보안 기능) – Karan

답변

0

안드로이드는 안드로이드 4.1을 내 테스트 용으로 사용하고 있었기 때문에 "9999999991", "9999999992", "9999999993"으로 취급되는 반면 위의 전화 번호는 다이얼러에 직접 표시됩니다.