android 구현하다 보니, 외부 어플도 열 수 있게끔 하고 싶어서 구현함!
아, 참고로 해당 기능을 구현하려면 그 어플의 패키지명을 알아야 하는데 나는 아래 사이트에서 검색했다 :)
https://www.apkmonk.com/app/com.dki.spb_android/
* 사용방법 * ( '따릉이' 로 테스트 )
1. 우선 열고자 하는 어플이 핸드폰에 깔려있는지 확인하는 메소드, 있으면 true 없으면 false 를 반환함
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | //어플이 깔려있는지 체크 public boolean getPackageList(String packageName) { boolean isExist = false; PackageManager pkgMgr = getContext().getPackageManager(); List<ResolveInfo> mApps; Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); mApps = pkgMgr.queryIntentActivities(mainIntent, 0); try { for (int i = 0; i < mApps.size(); i++) { if(mApps.get(i).activityInfo.packageName.startsWith(packageName)){ isExist = true; break; } } } catch (Exception e) { isExist = false; } return isExist; } | cs |
2. 구현하고자 하는 Activity 또는 Fragment 에서 아래와 같이 선언해주면 끝!
1 2 3 4 5 6 7 8 9 10 11 12 | //따릉이 연결 boolean isInstalled = getPackageList("com.dki.spb_android"); if(isInstalled){ Toast.makeText(this.getActivity(), "어플이 설치되어있지 않아 마켓으로 이동합니다.", Toast.LENGTH_SHORT).show(); Intent intent = getContext().getPackageManager().getLaunchIntentForPackage("com.dki.spb_android"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); }else{ String url = "market://details?id=" + "com.dki.spb_android"; Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(i); } | cs |
참고 : https://www.fun25.co.kr/blog/android-execute-3rdparty-app/?category=003
반응형
'MOBILE > Android' 카테고리의 다른 글
안드로이드 음성인식, 음성출력 기능 구현하기 (STT/TTS) (28) | 2018.08.10 |
---|---|
안드로이드 RollingText 사용법 (0) | 2018.08.08 |
안드로이드 카카오 API 로그인 추가하기 (0) | 2018.08.07 |
안드로이드 Firebase 사용방법 (0) | 2018.08.07 |
안드로이드 위도,경도로 주소값 가져오는 방법 (0) | 2018.08.06 |
댓글