我无法在 BroadcastReceiver 中使用 GetPackageManager ,我收到错误" 方法getPackageManager()未定义类型ReceiverSchedulerDaily &#34 ;.下面是我的代码
public class ReceiverSchedulerDaily extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// clean all app caches
PackageManager pm = getPackageManager();
Method[] methods = pm.getClass().getDeclaredMethods();
for (Method m : methods) {
if (m.getName().equals("freeStorageAndNotify")) {
try {
long desiredFreeStorage = Long.MAX_VALUE;
m.invoke(pm, desiredFreeStorage, null);
} catch (Exception e) {
}
break;
}
}
//
}
}
答案 0 :(得分:2)
而不是行:
PackageManager pm = context.getPackageManager();
使用此:
String letters = str.substring(0, 3); // Get the first 3 letters
int number = Integer.parseInt(str.substring(3)) // Parse the last 3 characters as a number
str = letters + (number+1) // Reassign the string and increment the parsed number
您正在使用的代码可能在之前的Activity中使用,它是Context的子类。但是你现在在BroadCastReceiver中使用它,它不会扩展Context。因此,您必须使用Context引用来获取对Package Manager系统服务的引用。