IT기술(코딩)/안드로이드스튜디오
안드로이드 스튜디오 앱에서 다른 앱 열기 안열릴때, 앱 있는데 안열릴때2 해결방법 찾음
크리에이트매이커
2021. 12. 6. 02:52
반응형
안녕하세요 여러분~ 이전 글에 이어서 설치된 앱이 있음에도 불구하고 앱이 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 해주면 정상적으로잘 동작하는것을 확인했습니다.~~
그럼 여러분들 즐 개발 해주세요~ 삶의 더 풍요로운 기술으 위해~
반응형