Je suis à l'aide de PackageStats et sur l'impression de la PackageStats de codeSize, cacheSize, données. datasize, certaines données sont à venir comme négatif.
Quelques questions:
- Comment est-ce possible?
- Quels sont les scénarios lorsque codeSize pourrait être négatif compte tenu de la apk taille est d'environ 50 MO?
- D'une autre façon qui peut être utilisé de manière fiable extraire les informations ci-dessus?
Aussi, pour Android N il me donne "NoSuchMethodException".Donc,
- Est-il retiré pour Android N ou est-il une façon de l'utiliser?
- Les solutions de rechange qui pourraient m'aider à calculer les dimensions ci-dessus?
Code:
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;
};
}