我们如何以编程方式在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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...