Android PackageStats da valores negativos
Estoy usando PackageStats y en la impresión CodeSize de PackageStats, cacheSize, dataSize, algunos datos viene como negativo.
Unas cuantas preguntas:
- Contraseña del almacén de claves alterada
- Cómo integrar Mpesa Api con android
- Android sherlock setDisplayHomeAsUpEnabled no funciona y cómo establecer destino personalizado?
- Ejemplo de navegación con desplazamiento rápido en android?
- Aplicación de chat para Android mediante un servidor XMPP y Google Cloud Messaging (o la nueva mensajería de Cloud de Firebase) para notificaciones por push
- ¿Cómo es esto posible?
- ¿Cuáles son los escenarios en que codeSize podría ser negativo teniendo en cuenta que el tamaño de apk es de alrededor de 50 MB?
- Cualquier otra forma que se puede utilizar de forma fiable para extraer información anterior?
Además, para Android N me da "NoSuchMethodException". Así,
- ¿Se elimina para Android N o hay alguna manera de usarlo?
- ¿Alguna alternativa que me ayude a calcular los tamaños anteriores?
Código:
PackageManager packageManager = context.getPackageManager(); Method myUserId = UserHandle.class.getDeclaredMethod("myUserId"); int userID = (Integer) myUserId.invoke(packageManager); Method getPackageSizeInfo = packageManager.getClass().getDeclaredMethod("getPackageSizeInfo", String.class, int.class, IPackageStatsObserver.class); getPackageSizeInfo.invoke(packageManager, context.getPackageName(), userID, new IPackageStatsObserver.Stub() { @Override public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) throws RemoteException { long codeSize = pStats.codeSize / MB; //long MB = 1024*1024; long cacheSize = pStats.cacheSize / MB; long dataSize = pStats.dataSize / MB; long appSize = codeSize + cacheSize + dataSize; }; }
- Se esperaba BEGIN_OBJECT pero era BEGIN_ARRAY en la línea 1 columna 2 (edición pequeña)
- Scroll up no funciona con SwipeRefreshLayout en Listview
- Cómo cerrar una ventana / actividad después de una cierta cantidad de inactividad
- android forma más rápida de decodificar mp3 a los datos de pcm
- Excepción terminada handshake de https de Android
- Error "HTTP / 1.1 401 no autorizado" con autenticación básica en android - EWS 2010
- Generador de notificaciones en android 2.3
- Datos de basura transmitidos en conexión WiFi TCP desde el escritorio a Android
Acaba de probar en API 23/24 y sólo puede instancia.
Estas propiedades external*
podrían referirse a la tarjeta SD.
PackageStats stats = new PackageStats(context.getPackageName()); long codeSize = stats.codeSize + stats.externalCodeSize; long dataSize = stats.dataSize + stats.externalDataSize; long cacheSize = stats.cacheSize + stats.externalCacheSize; long appSize = codeSize + dataSize + cacheSize;