마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

페키지명으로 앱실행관련질문입니다.

0 추천
페키지메니져로 특정어플이있으면 토스트동작후앱실행. 없을경우엔 토스트없이 앱종료되게하려고하는데... 해당페키지며어플이없을경우엔 종료가안되는데 소스좀봐주시고 수정좀부탁드립니다.. public void TEST_Check() { PackageManager pm = getPackageManager(); List appList = pm.getInstalledApplications(0); int nSize = appList.size(); for (int i = 0; i < nSize; i++) { if ((appList.get(i).packageName.indexOf("com.mycompany.test") != -1)){ Toast toast = Toast.makeText(this, "TEST 인증됨", Toast.LENGTH_LONG); toast.show(); } else{ onDestroy(); this.finish(); } } }
앵버리버드 (160 포인트) 님이 2013년 9월 12일 질문

1개의 답변

0 추천

onDestroy(); 지우시고 finish만 호출해 보세요.

whitesnow (8,920 포인트) 님이 2013년 9월 12일 답변
답변감사드립니다~
근데 inDestroy();를 지우고 finish만 호출햇는데도
안되는 이유가 왜일까요..;;
페키지명있을시는 앱실행후토스트.
없을시는 앱종료..
소스가잘못된건가요?
지금 구현하고자 하는게 A라는 앱에서 B앱 설치 여부 확인해서 B를 실행 시켜주거나 A를 종료하는 건가요?
만약 그렇다면 PackageManager에 getLaunchIntentForPackage 메소드를 호출하셔서 Exception 발생하지 않으면 null체크 하시고 해당 인텐트 실행하면 될거고요. Exception 발생하면 finish 호출하시면 될거에요.

참고로 위 소스는 실행하시면 항상 앱이 종료 될거 같네요. appList[0]에 있는 ApplicationInfo의 패키지 명이 원하는 패키지 명일 경우는 없을거고요 그러면 항상 finish 타고 종료될거에요.
감사드립니다^^좋은답변이된거같습니다~
...