Notice
Recent Posts
Recent Comments
Link
투케이2K
673. (Android/Java) Intent.ACTION_DELETE 사용해 특정 앱 삭제 수행 - app delete 본문
Android
673. (Android/Java) Intent.ACTION_DELETE 사용해 특정 앱 삭제 수행 - app delete
투케이2K 2023. 10. 26. 11:38[개발 환경 설정]
개발 툴 : AndroidStudio
[소스 코드]
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [RETURN] remove_App : 패키지 명 사용해 특정 앱 삭제 수행 - App Delete
// -----------------------------------------------------------------------------------------
public static Boolean remove_App(Context mContext, final String packageNames){
/**
* // -----------------------------------------
* [remove_App 메소드 설명]
* // -----------------------------------------
* 1. 패키지 명 사용해 특정 앱 삭제 수행 - App Delete
* // -----------------------------------------
* 2. 호출 방법 : C_App.remove_App(A_Main.this, "com.test.app");
* // -----------------------------------------
* 3. 로 직 : 조건 체크 수행 후 삭제할 앱이 있는 경우 true / 아닌 경우 false
* // -----------------------------------------
* 4. TODO [중요] AndroidManifest.xml 파일에서 queries >> package 등록 필요
* // -----------------------------------------
* 5. TODO [중요] 퍼미션 등록 필요
* <uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES"/>
* // -----------------------------------------
* */
// [리턴 변수 선언]
boolean returnData = false;
String M_LOG = "";
// [사전 패키지 명이 널인지 체크 실시]
if (C_Util.stringNotNull(packageNames) == true){
// [외부앱이 설치되었는지 확인]
try {
// [특정 패키지 명이 앱에 설치 되어 있는지 확인]
Intent existPackage = mContext.getPackageManager().getLaunchIntentForPackage(packageNames);
if (existPackage != null) { // [설치 되어 있는 경우]
// [앱 삭제 수행]
Intent intent = new Intent(Intent.ACTION_DELETE);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
intent.setData(Uri.parse(String.format("package:%s", packageNames)));
mContext.startActivity(intent);
M_LOG = "[remove_App] :: [Success] :: App Install File Found";
returnData = true;
}
else { // [설치 되지 않은 경우]
M_LOG = "[remove_App] :: [Error] :: App Install Not Found";
}
}
catch (ActivityNotFoundException e) {
// [이동할 패키지 명을 찾이 못한 경우]
M_LOG = "[remove_App] :: [ActivityNotFoundException] :: " + String.valueOf(e.getMessage());
}
catch (Exception e){
M_LOG = "[remove_App] :: [Exception] :: " + String.valueOf(e.getMessage());
}
}
else { // [패키지 명이 널인 경우]
M_LOG = "[remove_App] :: [Error] :: Input PackageName Is Null";
}
// [로그 출력 실시]
// ===============================================================
S_Log._D_("패키지 명 사용해 특정 앱 삭제 수행", new String[]{
"INPUT :: " + String.valueOf(packageNames),
"M_LOG :: " + String.valueOf(M_LOG),
"RETURN :: " + String.valueOf(returnData)
});
// ===============================================================
// [리턴 반환 실시]
return returnData;
}
[결과 출력]
반응형
'Android' 카테고리의 다른 글
Comments