我们如何以编程方式在android中隐藏应用程序?

问题描述

我正试图在android studio中隐藏一个应用。

我创建了一个DeviceAdminReceiver,用于在为应用授予管理员权限时进行监听。

#MyDevicePolicyReceiver.java
public class MyDevicePolicyReceiver extends DeviceAdminReceiver {
    @Override
    public void ondisabled(Context context,Intent intent) {
        Toast.makeText(context,"Truiton's Device Admin disabled",Toast.LENGTH_SHORT).show();
    }
    @Override
    public void onEnabled(Context context,"Truiton's Device Admin is Now enabled",Toast.LENGTH_SHORT).show();
    }
    @Override
    public CharSequence ondisableRequested(Context context,Intent intent) {
        CharSequence disableRequestedSeq = "Requesting to disable Device Admin";
        return disableRequestedSeq;
    }

    @Override
    public void onReceive(Context context,Intent intent) {
        super.onReceive(context,intent);
        Log.i("qwerty","MyDevicePolicyReciever Received: " + intent.getAction());
    }
    public static void enableApp(Context ctx,String pk){
        try {
            DevicePolicyManager dpm = (DevicePolicyManager) ctx.getSystemService(Context.DEVICE_POLICY_SERVICE);
            ComponentName localComponent = getComponentName(ctx);
            dpm.setApplicationHidden(localComponent,pk,false);
        }
        catch(Exception e){
            e.printstacktrace();
            Log.d("qwerty",e.toString());
            Log.d("qwerty",e.getMessage());
        }
    }
}

我正在使用DevicePolicyManager的setApplicationHidden从应用程序菜单中隐藏应用程序(在disableapp方法中)。

我在dpm.setApplicationHidden(localComponent,false);上收到以下错误

java.lang.SecurityException: Admin ComponentInfo{com.example.applocker/com.example.applocker.broadcast.MyDevicePolicyReceiver} does not own the profile.

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)