반응형
안녕하세요 여러분~ 이전 글에 이어서 설치된 앱이 있음에도 불구하고 앱이 List에 저장이 안되는 현상에 대해 해결방법을 알아보도록 하겠습니다.
결론을 말씀드리면, List에 설치된 앱이 되 저장이 안되는지는 원인을 못찾았습니다.
하지만, 설치된 앱을 실행하는 코드를 새로 알아냈습니다.
Intent launchapp = context.getPackageManager().getLaunchIntentForPackage(packagename);
launchapp.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
context.startActivity(launchapp);
이렇게 하면 설치된 앱이라면 실행이 될것입니다.
혹시 앱이 설치되지 않았을때, 에러 발생을 막고 앱 설치 페이지로 이동을 원하시면
try {
LaunchApp(Choicedelivery.this, packagename);
Log.d("TAG", "Choicedelivery App is on the phone");
}catch (Exception e) {
GotoInstall(Choicedelivery.this, packagename);
Log.d("TAG", "Choicedelivery App is not on the phone");
}
public static void LaunchApp (Context context, String packagename){
Intent launchapp = context.getPackageManager().getLaunchIntentForPackage(packagename);
launchapp.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
context.startActivity(launchapp);
}
public static void GotoInstall (Context context, String pakagename ){
String url = "market://details?id="+pakagename;
Intent gotoplaystore = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
gotoplaystore.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(gotoplaystore);
}
이런식으로 예외처리를 하여 사용하시는 것도 좋을것 같습니다.
여기서 중요한점은, !!
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
이 부분입니다. 여기서 , 만약 Intent.FLAG_ACTIVITY_NEW_TASK 만 선언하면, 앱이 설치돼있어도 안드로이드 앱 실행 관련 기능에서 에러를 일으킵니다. 그래서 Intnent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED 인자도 or 해주면 정상적으로잘 동작하는것을 확인했습니다.~~
그럼 여러분들 즐 개발 해주세요~ 삶의 더 풍요로운 기술으 위해~
반응형
'IT기술(코딩) > 안드로이드스튜디오' 카테고리의 다른 글
adb이용해서 안드로이드 앱에 한글 입력하기 (1) | 2023.11.28 |
---|---|
코틀린stomp parsemessage 분석하기. websocket에서 stomp으로 데이터 알맞게 전송하기 nodejs (0) | 2023.06.06 |
안드로이드 스튜디오 핀치 완벽 함수! 그냥 복붙해서 인자만 넣고 갖다써요. 이미지가 크면 화면크기에 맞춰져서 나옵니다. 이미지 확대 축소 기능 핀지 자바버전 슬라이드 무시, 스크롤 무시.. (0) | 2022.01.13 |
안드로이드 스튜디오 앱에서 다른 앱 열기 안열릴때, 앱 있는데 안열릴때 (0) | 2021.12.06 |
java 안드로이드 스튜디오 이미지 사이즈 축소 및 이지미 용량 축소 감소 조절 함수 (0) | 2021.11.30 |