2012-05-24 4 views
3

그냥 안드로이드 장치의 전화 응용 프로그램을 열고 싶습니다. 그 응용 프로그램에 전화 번호를 제공하고 싶지 않습니다. 그냥 열어 봐.
전화 응용 프로그램의 패키지 이름을 사용하여 엽니 다. 패키지 이름을 통해 원하는 모든 응용 프로그램을 열 수 있기 때문에 아래 코드를 사용하십시오.

Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.android.contacts"); startActivity(launchIntent);

안드로이드 오픈 전화 응용 프로그램

나는 전화연락처 위의 코드와 응용 프로그램을 열 수 없습니다입니다. 무엇이 문제 일 수 있습니까?

답변

18

Intents 파일 열기와 같은 작업에 액세스하는 일반적인 방법을 제공하기 위해 의도 된 것입니다. 당신이 원하는 패키지를 지정해야한다면 매우 제한적입니다. 그러나, 당신이 겪고있는 의도일지도 모릅니다.

//For the contacts (picking one) 
Intent i = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); 
//For the contacts (viewing them) 
Intent i = new Intent(Intent.ACTION_VIEW, ContactsContract.Contacts.CONTENT_URI); 
//For the dial pad 
Intent i = new Intent(Intent.ACTION_DIAL, null); 
//For viewing the call log 
Intent i = new Intent(Intent.ACTION_VIEW, CallLog.Calls.CONTENT_URI); 

미래에 당신에게 시간을 절약하기 위해 어딘가에 자신에게 useful intents 파일을 확인, 나중에 언젠가 나 한테 감사하겠습니다.

물론 이러한 의도를 시작하려면 첫 번째 것을 제외하고 startActivity(i);을 수행하십시오. 연락처를 다시 원하면 startActivityForResult(i);이 필요하지만 다른 이야기입니다.

+0

전화를 받고 싶지 않습니다. 나는 네이티브 전화를하고 싶다. – MobiDev

+0

시도해 보셨습니까? 왜냐하면 당신이 그렇게했다면, 당신은 그들이 일하는 것을 보았을 것입니다. –

+0

ACTION_DIAL은 작동하지만 패키지 이름을 사용하여 열려고했습니다. 내가 당신의 방법 중 하나를 사용한다면 나는 열악한 전화 및 연락처 응용 프로그램을 열려면 그것을 하드 코딩해야합니다. 이 두 가지 앱을 제외한 패키지 이름으로 원하는 모든 애플리케이션을 열 수 있습니다. 내 코드를 시도하십시오 ... – MobiDev

2

공공 정적 최종 문자열 ACTION_DIAL

가입일 : API 레벨 1 활동 조치 : 데이터에 의해 지정된 번호로 전화를 겁니다. 이것은 사용자가 이 명시 적으로 호출을 시작할 수 있도록 번호가 다이얼 된 UI를 보여줍니다. 입력 : 아무것도없는 경우 빈 다이얼러는 입니다.

출처 : http://developer.android.com/reference/android/content/Intent.html#ACTION_DIAL

http://developer.android.com/reference/android/content/Intent.html#ACTION_CALL 당신이 찾고있는 무엇도 될 수 있습니다.

활동의 전화 통화를 시작하려면 활동 컨텍스트에서 http://developer.android.com/reference/android/content/Context.html#startActivity(android.content.Intent을 사용하십시오.

관련 문제