自启动相关

//    获取所有开机启动应用
    public List listBootApps() {
        List bootAppNames = new ArrayList();
        PackageManager pm = mFragment.getActivity().getPackageManager();
//获取所有安装的App的信息
        List appInfos = pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);
        for (ApplicationInfo appInfo : appInfos) {
            if (appInfo.packageName.equals("com.zzc_trackingreact")) {

                int i = ContextCompat.checkSelfPermission(mFragment.getActivity(), Manifest.permission.RECEIVE_BOOT_COMPLETED);

//                if (ContextCompat.checkSelfPermission(mFragment.getActivity(), Manifest.permission.RECEIVE_BOOT_COMPLETED)
//                        != PackageManager.PERMISSION_GRANTED) {
//                    // 没有权限,可以在这里重新申请权限。
//                }else{
//                    // 有权限了。
//                }

                Log.d("自启动相关", appInfo.toString());
                int iBoot = pm.checkPermission("android.permission.RECEIVE_BOOT_COMPLETED", appInfo.packageName);
                if (iBoot == PackageManager.PERMISSION_GRANTED) {
                    String appName = pm.getApplicationLabel(appInfo).toString();
                    bootAppNames.add(appName);
                }
            }
        }
        return bootAppNames;
    }

    private void getPermissions() {
        PackageManager packManager = mFragment.getActivity().getPackageManager();
        List infos = packManager.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);
//获取到安装的App列表
        for (ApplicationInfo info : infos) {
            if (info.packageName.equals("com.zzc_trackingreact")) {
                Log.d("app", "appName--->" + packManager.getApplicationLabel(info) + "");
                try {
                    PackageInfo packInfo = packManager.getPackageInfo(info.packageName, PackageManager.GET_PERMISSIONS);
                    String permissons[] = packInfo.requestedPermissions;
//获取该app的所有权限
                    int length = permissons.length;
                    for (int i = 0; i < length; i++) {
                        Log.d("app", permissons[i]);
                    }
                } catch (Exception e) {
                    // TODO Auto-generated catch block
//                    e.printStackTrace();
                }
            }

        }
    }

    private void getPermission(){
        ComponentName localComponentName = new ComponentName(mFragment.getActivity(), WakeReceiver.class);
        int i = mFragment.getActivity().getPackageManager().getComponentEnabledSetting(localComponentName);
    }

你可能感兴趣的:(自启动相关)