기록

androidStudio/java/다른 앱으로 사용자 보내기 본문

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

Comments