>source

다른 응용 프로그램 캐시 메모리를 청소하는 방법에 대해 여기에서 읽었으며 자체 앱 코딩도 시도했습니다. 내가 얻은 결과는 Android의 현재 보안 계층으로는 불가능하다는 것입니다.

하지만 현재 시장(Google Play)에 많은 캐시 클리너 애플리케이션이 있습니까?

내가 준 지원서를 시작할 때android.permission.DELETE_CACHE_FILES허가, LogCat 인쇄

Not granting permission android.permission.DELETE_CACHE_FILES to package  (protectionLevel=3 flags=0x8be46)

조사 후 제3자 앱에는 다음과 같은 권한이 부여되지 않는다는 것을 알게 되었습니다.보호레벨=3그래서 (논리적으로) 다른 애플리케이션 캐시를 삭제하려고 할 때마다 java.lang.SecurityException이 발생합니다.

제 질문은 "Google Play의 이러한 애플리케이션이 어떻게 허용되고 다른 애플리케이션 캐시를 삭제할 수 있습니까?"입니다.

영어가 원어민이 아닌 제 영어실력에 대해 죄송합니다.

내 대답을 봐

AndroidGeek2021-10-02 22:53:34
  • 답변 # 1

    Android 11 이상에서는 ACTION_CLEAR_APP_CACHE를 사용할 수 있습니다. 이 작업은 앱 캐시를 자동으로 지우지 않지만 시스템 대화 상자를 표시하고 사용자가 결정할 수 있도록 합니다.

    MANAGE_EXTERNAL_STORAGE 권한도 필요합니다.

    용도:

    Android 매니페스트:

    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
        android:minSdkVersion="30"
        tools:ignore="ScopedStorage" />

    모든 캐시 지우기:

    //Get the cache dialog
    int requestCode= 999;
    Intent intent= new Intent(StorageManager.ACTION_CLEAR_APP_CACHE);
    activity.startActivityForResult(intent, requestCode);
    

  • 답변 # 2

    기기가 루팅되어 있고 애플리케이션에 수퍼유저 권한이 있는 경우에만 이 작업을 수행할 수 있습니다.

    그러나 현재 Google Play에는 루트가 필요하지 않은 응용 프로그램이 있습니다.

    MAA2021-10-02 22:53:34

    나는 아무것도 모른다. 예를 들어 주시겠습니까?

    Ahmad2021-10-02 22:53:34

    @Mylleranton: 모든 캐시 파일(존재함)을 삭제하는 앱과 단일 앱의 캐시 파일(사용자 지정 펌웨어 또는 기기 루팅 외부에 존재할 수 없음)을 삭제하는 앱을 혼동하고 있습니다. 모든 캐시 파일을 삭제하는 앱은 Android의 보안이 취약한 영역을 악용하고 있습니다. 이 문제를 해결하려고 합니다.

    CommonsWare2021-10-02 22:53:34

    @ Mylleranton 나는 당신이 의미하는 바를 찾은 것 같아요. 나는 그 앱 중 하나를 다운로드했습니다. 그들은 캐시를 정리하지 않고 단지 의도를 시작하고 사용자를 특정 앱 설정으로 안내합니다. (따라서 그는 캐시를 수동으로 지워야 합니다). 이 인텐트를 시작하려면 ACTION_APPLICATION_DETAILS_SETTINGS @CommonsWare Yap이 필요합니다.

    Ahmad2021-10-02 22:53:34

    @Ahmad 흠, 내가 다운로드 한 것은 "모든 캐시 지우기"버튼이 있었고 App Cache Cleaner를 수행했습니다.

    MAA2021-10-02 22:53:34
  • 이전 JavaScript에서 연결 목록을 뒤집는 전략
  • 다음 열 추가, 주석을 사용하는 Oracle SQL 트리거