无法实例化PackageManager

时间:2012-05-28 15:55:47

标签: android android-package-managers

我正在创建一个依赖于使用BroadCastReceiver的类的应用程序,以便在安装和卸载应用程序时捕获。收到的意图很好,onReceive中的代码按原样执行。但是,我遇到的问题是,当我尝试实例化一个新的PackageManger时,我收到一条错误消息。错误是:“无法实例化类型PackageManager”。 我几乎尝试了所有的变化,但我无法让它工作。

我的代码:

package com.my.package;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.util.Log;

public class PackageReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Uri datauri         = intent.getData(); 
        String uri          = datauri.toString();
        PackageManager pm   = new PackageManager();
        //pm.getApplicationInfo(uri);   //broken
        test(datauri);                  //works fine
    }//end method

    public void test(Uri uri){
        Log.d("test", "data: "+uri);
    }//end method
}// end class

1 个答案:

答案 0 :(得分:1)

使用

PackageManager pm= context.getPackageManager(); 
List<ApplicationInfo> applicationInfos = pm.getInstalledApplications(0);
....

而不是

PackageManager pm   = new PackageManager();