Невозможно создать экземпляр PackageManager

Я делаю приложение, которое опирается на класс, который использует 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 ответ

Решение

Использование

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

вместо

PackageManager pm   = new PackageManager();
Другие вопросы по тегам