在android中使用getPackageManager

时间:2015-07-04 07:53:25

标签: android

我无法在 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;
            }
        }
        //
    }

}

1 个答案:

答案 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系统服务的引用。