반응형
안녕하세요 요번 포스팅에서는 간단한 사항에 대해 다뤄보도록 하겠습니다. 앱을 개발하다보면 사용자 단말기에 sns등의 타앱 설치 유무를 체크해, 해당 앱을 실행하거나 설치를 유도할 경우가 있습니다. |
수정내용
2019.02.18 : 특정 앱 실행시키는 코드 추가
1. 특정 앱 설치유무 체크
패키지명을 파라미터로 받아 설치 유무를 리턴해주는 메소드 입니다. |
private boolean isInstallApp(String pakageName){
Intent intent = mContext.getPackageManager().getLaunchIntentForPackage(pakageName);
if(intent==null){
//미설치
return false;
}else{
//설치
return true;
}
}
2. 설치된 모든 앱 정보
앱에 설치된 모든 앱들의 정보를 출력하는 메소드입니다. |
private void getInstallApllList(){
PackageManager packageManager = mContext.getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> AppInfos = packageManager.queryIntentActivities(intent, 0);
for (ResolveInfo info : AppInfos) {
ActivityInfo ai = info.activityInfo;
Log.d("app name", ai.loadLabel(packageManager).toString());
Log.d("app package Name",""+ai.packageName);
int resId = ai.applicationInfo.icon; //icon
}
}
3. 특정 외부 앱 실행시키기
앱을 실행 시키기 위해선 그 앱에 스키마/호스트를 알아야 실행시킬 수 있습니다. 스키마://호스트로 실행 가능하며 구글 마켓은 스키마 : market:, 호스트 : details 입니다. 간혹 스토어가 설치되어 있지 않거나, 루팅된 단말일 경우 'ActivityNotFoundException' 에러가 발생하기때문에 아래와 같이 try / catch문을 통해 예외처리를 해주시면 좋습니다. |
try {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
} catch (android.content.ActivityNotFoundException anfe) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
}
문의사항 및 이의사항에 대해서는 댓글이나 방명록으로 남겨주시면 확인후 신속하게 처리하겠습니다.
감사합니다.
반응형
'안드로이드 > 자바' 카테고리의 다른 글
[안드로이드/Android] 알파/베타버전 테스트 (4) | 2017.11.01 |
---|---|
[안드로이드/Android] WebView 세팅 속성 (0) | 2017.10.29 |
[안드로이드/Android] 애드몹 전면광고 달기 (13) | 2017.09.03 |
[안드로이드/Android] 애드몹 배너 광고 달기 (5) | 2017.09.03 |
[안드로이드/Android] 페이스북 로그인 연동 (5) | 2017.08.31 |