Moblie/Android
androidStudio/java/다른 앱으로 사용자 보내기
youngyin
2020. 9. 7. 01:00
manifests
해당 기능을 사용하는 activity에 intent 필터 추가
<activity android:name=".MainActivity" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="geo" />
</intent-filter>
</activity>
MainActivity.java
해당 activity에 함수 작성
카카오맵의 경우 "market://details?id=net.daum.android.map"
네이버맵의 경우 "market://details?id=com.nhn.android.nmap"
// 외부 지도어플 열기
public void openMap(Double latitude, Double longitude){
// Build the intent
Uri location = Uri.parse("geo:"+latitude+","+longitude);
Intent mapIntent = new Intent(Intent.ACTION_VIEW, location);
// 사용할 수 있는 어플이 있는지 확인
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);
}
// 어플이 없다면 app store, navermap 설치 화면으로 연결
else {
startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse("market://details?id=com.nhn.android.nmap")));
}
}
실행결과
지도를 사용할 수 있는 어플을 검색하여 선택할 수 있음.
참고 사이트
https://developer.android.com/training/basics/intents/sending?hl=ko#java