gpt4 book ai didi

java - IPackageStatsObserver 无法解析为类型 (Android)

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:56:36 25 4
gpt4 key购买 nike

我想计算使用该设备的所有缓存内存的总和。为此,我收到一个编译时间错误:

IPackageStatsObserver cannot be resolved to a type

我在代码中提到过这个错误2次:

public long totalCacheSize(){
totalSize=0;

PackageManager packageManager = getApplicationContext().getPackageManager();

/* List<PackageInfo> packs = packageManager
.getInstalledPackages(PackageManager.GET_ACTIVITIES);*/
// PackageManager.GET_META_DATA

List<PackageInfo> packs = packageManager
.getInstalledPackages(PackageManager.GET_META_DATA);

for (int i = 0; i < packs.size(); i++) {

PackageInfo p = packs.get(i);

Method getPackageSizeInfo;
try {
getPackageSizeInfo = packageManager.getClass()
.getMethod("getPackageSizeInfo",
String.class, Class.forName("android.content.pm.IPackageStatsObserver"));

getPackageSizeInfo.invoke(packageManager, p.packageName,
new IPackageStatsObserver.Stub() { //error

public void onGetStatsCompleted(
PackageStats pStats, boolean succeeded)
throws RemoteException {

totalSize = totalSize + pStats.cacheSize;
Log.d("size", totalSize+"");
Toast.makeText(getApplicationContext(), "size"+totalSize, Toast.LENGTH_SHORT).show();
}
}
);

} catch (Exception e) {
try {
getPackageSizeInfo = packageManager.getClass()
.getMethod("getPackageSizeInfo",
String.class, Class.forName("android.content.pm.IPackageStatsObserver"));

getPackageSizeInfo.invoke(packageManager, p.packageName,
new IPackageStatsObserver.Stub() { //error

public void onGetStatsCompleted(
PackageStats pStats, boolean succeeded)
throws RemoteException {

totalSize = totalSize + pStats.cacheSize;
Log.d("size", totalSize+"");
Toast.makeText(getApplicationContext(), "size"+totalSize, Toast.LENGTH_SHORT).show();
}
}
);
} catch (Exception ee) {
Log.d("eeeeeeeeeee", "error");
ee.printStackTrace();
}
}
}

Log.d("return size", totalSize+"");
Toast.makeText(getApplicationContext(), "return size"+totalSize, Toast.LENGTH_SHORT).show();
return totalSize;
}

IPackageStatsObserver 在 android SDK 中不可用。也许使用 Class.forName() 加载 Stub 类,找到默认构造函数并调用它以获取 Stub 的新实例。但是我应该怎么编码呢,我对此一无所知!?

求助!!

最佳答案

要解决您的问题,请按照以下步骤操作:

安卓工作室

  • 右键单击您的项目新建 > 文件夹 > AIDL 文件夹
  • 完成
  • 右键单击 aidl 文件夹 New > Package
  • 插入 android.content.pm 并按 OK
  • 下载IPackageStatsObserver.aidl
  • 复制android.content.pm包中的aidl文件
  • 构建 > 重建项目

eclipse

  • 右键单击 src 文件夹 New > Package
  • 插入android.content.pm
  • 完成
  • 下载IPackageStatsObserver.aidl
  • 复制android.content.pm包中的aidl文件
  • 选择 totalCacheSize 所在的类,然后 Source > Organize Imports

关于java - IPackageStatsObserver 无法解析为类型 (Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28791461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com