1

I am developing standard "clean master" application.

My app works perfectly if api level lower than 26..

I need to show app total size on phone, so user can decide to uninstall or not.

  private void getPackageSizeInfo(Context context, final String packageName) {
    try {
        PackageManager packageManager = context.getPackageManager();
        Method getPackageSizeInfo = packageManager.getClass().getMethod("getPackageSizeInfo", String.class, IPackageStatsObserver.class);

        getPackageSizeInfo.invoke(packageManager, packageName, new IPackageStatsObserver.Stub() {
            public void onGetStatsCompleted(PackageStats packageStats, boolean succeeded) throws RemoteException {
                long totalCacheSize = packageStats.cacheSize + packageStats.externalCacheSize;
                long totalDataSize = packageStats.dataSize + packageStats.externalDataSize;
                long totalCodeSize = packageStats.codeSize + packageStats.externalCodeSize;
                long totalSize = totalDataSize + totalCodeSize;

                Log.i("appSize", "Total Size:" +packageName + "   " + NetworkHelper.humanReadableByteCount(totalSize) );
                Log.i("appSize", "App Size:" + packageName + "   " +NetworkHelper.humanReadableByteCount(totalCodeSize) );
                Log.i("appSize", "Data Size:" +packageName + "   " +NetworkHelper.humanReadableByteCount(totalDataSize)  );
                Log.i("appSize", "Cache Size:" +packageName + "   " +NetworkHelper.humanReadableByteCount(totalCacheSize)  );
            }
        });
    } catch (Exception e) {
        e.printStackTrace();
    }
}

as i said, this code works perfectly under api 26.(added aidl ofc)

I know its possible because Clean master -advanced cleaning part works on api 26.

Caused by: java.lang.UnsupportedOperationException: Shame on you for calling the hidden API getPackageSizeInfoAsUser(). Shame!

I am getting this error. I already read every topic about that.

I have <uses-permission android:name="android.permission.GET_PACKAGE_SIZE" /> permission. Got usage access etc.

Note: I dont want to get apk size(i already have), just want total app size.

O. Kumru
  • 85
  • 7

0 Answers0