I got a list of the package name and label of the installed application in the database. Now I want to intercept the installed application and database. Suppose any application is removed from the device, then I want the changes in the database. I use a broadcast receiver for this, but my code does not work.
PackageManager pm = this.getPackageManager();
List < ApplicationInfo > list = getPackageManager().getInstalledApplications(PackageManager.PERMISSION_GRANTED);
for (int n = 0; n < list.size(); n++) {
Apps.add(list.get(n).loadLabel(pm).toString());
AppsP.add(list.get(n).packageName.toString());
Log.w("Installed Applications", list.get(n).loadLabel(pm).toString());
Log.w("Installed Applications Package", list.get(n).packageName.toString());
...
In other class
public class PackageReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equalsIgnoreCase(Intent.ACTION_PACKAGE_ADDED)) {
String added_package = intent.getData().toString();
Log.i("PackageReceiver", "Package Added = " + added_package);
} else if (intent.getAction().equalsIgnoreCase(Intent.ACTION_PACKAGE_REMOVED)) {
String removed_package = intent.getData().toString();
MyDBHelper DB = new MyDBHelper(context);
Log.i("PackageReceiver", "Package removed = " + removed_package);
DB.open();
DB.deleteStmt = DB.db.compileStatement(QueryManager.ApplicationDelete);
DB.deleteStmt.bindString(1, removed_package);
DB.close();
}
any help?
Nimit
source
share