영상처럼, 앱에서 다른 앱을 실행시키거나 앱이 현재 폰에 설치가 되어 있지 않다면
구글 플레이 스토어로 이동하여 설치하는 코드를 작성해 보자.
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
'앱 만들기 > 안드로이드 study' 카테고리의 다른 글
안드로이드의 기술 # 앱 SNS 공유하는 방법. (4) | 2020.10.15 |
---|---|
안드로이드의 기술 #안드로이드 스튜디오 오토 임포트 설정하기. (4) | 2020.10.14 |
안드로이드의 기술 #액션바 옵션 메뉴 만들기 (4) | 2020.10.10 |
티스토리 방문자 수를 늘리는 것 만큼 앱 다운로드 수를 늘리는 것도... (6) | 2020.10.09 |
이클립스 폰트 설정 하기. (4) | 2020.10.07 |
댓글