안드로이드 다른 앱과 상호작용하기
프로그래밍/Android 2013. 8. 28. 23:18안드로이드 다른 앱과 상호작용하기
Implicit Intent (암시적 인텐트)
- 암시적 인텐트는 시작해야할 클래스 이름이 필요하지 않다.
전화걸기
Uri number = Uri.parse( "tel:5551234");
Intent callIntent = new Intent( Intent.ACTION_DIAL, number);
지도 띄우기
// Map point based on address
Uri location = Uri.parse("geo:0,0?q=1600+Amphitheatre+Parkway,+Mountain+View,+California");
// Or map point based on latitude/longitude
// Uri location = Uri.parse("geo:37.422219,-122.08364?z=14"); // z param is zoom level
Intent mapIntent = new Intent(Intent.ACTION_VIEW, location);
웹 페이지 띄우기
Uri webpage = Uri.parse("http://www.android.com");
Intent webIntent = new Intent(Intent.ACTION_VIEW, webpage);
추가 데이터는 Inent 의 putExtra() 메소드로 추가한다.
메일 보내기
Intent emailIntent = new Intent(Intent.ACTION_SEND);
// Intent 가 URI 를 갖지 않으므로 "text/plain" MIME type으로 설정한다.
emailIntent.setType(HTTP.PLAIN_TEXT_TYPE);
emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] {"jon@example.com"}); // recipients
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Email subject");
emailIntent.putExtra(Intent.EXTRA_TEXT, "Email message text");
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("content://path/to/email/attachment"));
// 첨부파일이 여러개일 경우 첨부파일 Uri 를 ArrayList 에 담아 설정한다.
달력 일정 (API level 14)
Intent calendarIntent = new Intent(Intent.ACTION_INSERT, Events.CONTENT_URI);
Calendar beginTime = Calendar.getInstance().set(2012, 0, 19, 7, 30); // 2012/01/19 07:30
Calendar endTime = Calendar.getInstance().set(2012, 0, 19, 10, 30); // 2012/01/19 10:30
calendarIntent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, beginTime.getTimeInMillis());
calendarIntent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endTime.getTimeInMillis());
calendarIntent.putExtra(Events.TITLE, "Ninja class");
calendarIntent.putExtra(Events.EVENT_LOCATION, "Secret dojo");
Intent 를 처리할 앱이 있는 확인하는 방법
PackageManager packageManager = getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities( intent, 0);
boolean isIntentSafe = activities,size() > 0;
Intent 의 설정이 완료됬으면 startActivity( Intent); 호출한다.
지도 띄우기 소스
// Build the intent
Uri location = Uri.parse("geo:0,0?q=1600+Amphitheatre+Parkway,+Mountain+View,+California");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, location);
// Verify it resolves
PackageManager packageManager = getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(mapIntent, 0);
boolean isIntentSafe = activities.size() > 0;
// Start an activity if it's safe
if (isIntentSafe) {
startActivity(mapIntent);
}
Intent 를 처리할 앱 선택 화면 띄우기
Intent intent = new Intent(Intent.ACTION_SEND);
...
// Always use string resources for UI text.
// This says something like "Share this photo with"
String title = getResources().getString(R.string.chooser_title);
// Create and start the chooser
Intent chooser = Intent.createChooser(intent, title);
startActivity(chooser);
'프로그래밍 > Android' 카테고리의 다른 글
안드로이드 Camera 앱을 활용하여 사진찍기 (4) | 2013.08.29 |
---|---|
안드로이드 Activity 실행 결과 받기 (1) | 2013.08.29 |
안드로이드 File 다루기 (0) | 2013.08.28 |
안드로이드 Fragment 활용하기 (0) | 2013.08.28 |
안드로이드 테마 설정하기 (0) | 2013.08.27 |