앱 만들기/안드로이드 study

안드로이드의 기술 # 미설치 앱 구글플레이에서 설치하기 와 실행 시키기.

나도처음이야 2020. 10. 13.

 

외부 앱 설치 이동 및 실행

 

영상처럼, 앱에서 다른 앱을 실행시키거나 앱이 현재 폰에 설치가 되어 있지 않다면

구글 플레이 스토어로 이동하여 설치하는 코드를 작성해 보자.

 

1. 앱이 설치 되어 있다면, 앱 실행 시키기.

앱이 설치되어 있는지는 패키지 명을 이용하여 확인 할수 있다.

하기 처럼, 반환 값의 intent 가 null 인 경우는 앱이 미설치된 경우이다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
 // 해당 앱(패키지)이 설치되었는지 확인 하는 코드
    private boolean checkInstalledApp(String pakageName){
        Intent intent = getPackageManager().getLaunchIntentForPackage(pakageName);
 
        loadAllPackages();
 
        if(intent==null){ // 미 설치 상태.
            return false;
        }else// 설치 상태.
            return true;
        }
 
    }
cs

 

위 함수를 하기 코드에 적용하여, 영상에 나오듯이 옵션 메뉴에 적용해보자.

앱 이 설치되어 있다면, Intent 를 만들어서 해당 패키지를 실행하면 된다.

예제에는 필자의 국기 앱을 로딩하고 있다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        // 사용자가 선택한 메뉴의 ID 값을 호출한다.
        int id = item.getItemId();
 
        switch (id) {
            case R.id.item1:
                textView.setText("국기 앱으로 이동합니다");
 
                // 앱이 설치 되어있다면
                if(checkInstalledApp("bluemooninsea.soo.worldflag")) {
                    Intent intent = getPackageManager().getLaunchIntentForPackage("bluemooninsea.soo.worldflag");
                    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    startActivity(intent);
                }else{
                    // 미설치 상태라면, 안드로이드 마켓으로 이동
                    try {
                        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + "bluemooninsea.soo.worldflag")));
                    } catch (android.content.ActivityNotFoundException anfe) {
                        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + "bluemooninsea.soo.worldflag")));
                    }
                 }
                break;
cs

 

 

2. 미 설치 상태라면, 구글 플레이 스토어로 이동 시키기

- 그렇다.

  앱이 폰에 설치 되어 있지 않다면, 구글 플레이이로 이동시켜 앱을 다운로드 받도록 설계한다.

  구글플레이 를 실행시킬때는 하기 음영 텍스트 뒤에 다운 받을 패키지 명을 기재하자.  

 

 startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + "bluemooninsea.soo.worldflag")));

 

만약, 위 코드에서 오류가 발생한다면,

하기처럼, 브라우저에서 해당 앱을 열어준다.

오류가 난다는 의미는, 구글플레이 가 설치되어있지 않은 폰 혹은 루팅 등의 탈옥 폰등을 말한다.

 

try {

     startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + "bluemooninsea.soo.worldflag")));

    } catch (android.content.ActivityNotFoundException anfe) {

      startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + "bluemooninsea.soo.worldflag")));

                    }

 

 

추가로, 폰에 설치된 모든 패키지 명을 출력하기 위해서는

하기 함수를 사용하자.

1
2
3
4
5
6
7
8
// 설치된 모든 패키지를 출력하는 코드
    private void loadAllPackages() {
        List<PackageInfo> appsInfo = getPackageManager().getInstalledPackages(PackageManager.GET_ACTIVITIES);
        for (int i = 0; i < appsInfo.size(); i++) {
            PackageInfo packageInfo = appsInfo.get(i);
            Log.d("test" , "설치된 패키지 명 = " + packageInfo.packageName);
        }
    }
cs

 

특정 앱에서

다른 앱을 실행 시키거나, 앱이 없을 때 구글 플레이 에서 앱을 다운로드 받게 하는 기능은

1인 개발자의 마케팅 영역에서도 중요한 포지션을 차지 한다.

자신이 만든 앱등에서 신규 출시 되는 앱을 직접 홍보 할 수 있는 방법 중 하나이다.

 

 

 

심심 할때, 

국기 퀴즈 게임 한판 어떠세요? ^^

기분 좋은 하루되세요.

감사합니다.

 

play.google.com/store/apps/details?id=bluemooninsea.soo.worldflag

 

세계의 국기 ☆ 국기 퀴즈 게임 - Google Play 앱

안녕하세요. 세계 국기 앱 입니다. 대륙 별 세계 국기와 수도, 나라 위치 , 인구, 통화 정보를 손쉽게 알 수 있습니다. 6대륙(아시아,유럽,북아메리카,남아메리카,오세아나이,아프리카) 의 세계국�

play.google.com

 

반응형

댓글