3

我正在尝试卸载盗版应用程序。我的 sdk 中没有以下导入。

 import android.app.PackageDeleteObserver;
import android.content.pm.IPackageDeleteObserver;

IPackageDeleteObserver所以我从这里https://github.com/android/platform_frameworks_base/blob/master/core/java/android/content/pm/IPackageInstallObserver2.aidl得到了界面,我把它放在了 android/content/pm 但我的 android studio没有检测到它。下拉菜单不显示android.content.pm.IPackageDeleteObserver。有人知道如何解决这些进口问题吗?

这是整个代码:

  package com.vivek.light.utils;

/**
 * Created by Shiva on 24-07-2015.
 */
import android.app.PackageDeleteObserver;
import android.content.pm.IPackageDeleteObserver;

import android.content.pm.PackageManager;
import android.os.RemoteException;
import android.util.Log;

import java.lang.reflect.Method;

import static com.vivek.light.utils.AntiPiracyConstants.*;

public class AntiPiracyUtils {

    static final String TAG = "ANTI-PIRACY: Utilities";

    private static PackageDeleteObserver sPDO;

    private AntiPiracyUtils() {
        sPDO = getPackageDeleteObserver();
    }

    private static Class<?>[] UNINSTALLTYPES = new Class[] {
            String.class, IPackageDeleteObserver.class, int.class
    };

    public static class PackageDeleteObserver extends IPackageDeleteObserver.stub  {
        public void packageDeleted(String packageName, int returnCode) throws RemoteException {
            if (DEBUG) Log.i(TAG, "PackageDeleteObserver: " + packageName + " removed");
        }
    }

    public static PackageDeleteObserver getPackageDeleteObserver() {
        if (sPDO == null) sPDO = new PackageDeleteObserver();
        return sPDO;
    }

    public static Method getUninstallTypes(PackageManager pm) throws NoSuchMethodException {
        try {
            return pm.getClass().getMethod("deletePackage", UNINSTALLTYPES);
        } catch (NoSuchMethodException WTF) {
            Log.e(TAG, "NoSuchMethodException" + l);
        }
        return null;
    }
}
4

0 回答 0