본문 바로가기
프로그래밍/Android

다양한 구글 기본 앱 연동 (with INTENT call)

by Mr-후 2018. 10. 24.
반응형

다양한 구글 기본 앱 연동 (with INTENT call) 


다양하게 지원되는 구글의 기본앱과 기타 앱을 Intent를 통해 실행하는 기본 코드를 정리해서 올려둔다. 급할 때 유용하게 사용할 수 있을 것 같다. 


1) 주소록 앱

Intent intent = new Intent(Intent.ACTION_PICK); 
intent.setData(ContactsContract.Contacts.CONTENT_URI);

startActivityForResult(intent, 10); //결과를 되돌려 받기 위해 startActivityForResult()를 사용하고 onActivityResult를 Override해서 값을 처리하면 된다. 


2) 카메라 앱 

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(intent, 30);  //마지막 인자 30은 request code로 onActivityResult()에서 사용하기 위해서 넣는다. 

//동영상일 경우

intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY,0);
intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 20);
intent.putExtra(MediaStore.EXTRA_SIZE_LIMIT, 1024*1024*10);
intent.putExtra(MediaStore.EXTRA_OUTPUT, videoURI); 

startActivityForResult(intent, 20); 


3) 갤러리 앱

Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType(MediaStore.Images.Media.CONTENT_TYPE);
intent.setData(MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 

startActivityForResult(intent, 20);


4) 음성인식 앱 

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "음성 인식 테스트"); 

startActivityForResult(intent, 50); 


5) 지도 앱

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo: 37.211232, 126.232323"));

startActivity(intent); 


6) 브라우저 앱 

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("htts://m.naver.com")); 

startActivity(intent); 


7)전화 앱 

AndroidManifest.xml에 권한 추가 

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


Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:02-120")); 

startActivity(intent); 


★★ 사용자의 스마트폰에 인텐트에 반응할 액티비티가 있는지 미리 확인하여 예외 처리 적용 ★★

PackageManager pm = getPackageManager();
List<ResolveInfo> activities =  pm.queryIntentActivities(intent, 0); 
if (activities.size() != 0) {

//있을 경우 처리 

} else { 

//없을 경우 처리 

}

PackageManager 클래스의 queryIntentActivities()함수를 이용해서 확인 가능. 




반응형