Я получил список имени пакета и метки установленного приложения в базе данных, теперь я хочу перехватить установленное приложение и базу данных. Предположим, что любое приложение удаляется с устройства, тогда я хочу изменения в базе данных. для этого я использую широковещательный приемник, но мой код не работает.
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) {
// TODO Auto-generated method stub
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();
}
любая помощь ??