Android 禁止使用摄像头功能_嘉兴APP开发_嘉兴APP设计制作开发_嘉兴APP制作_嘉兴手机APP制作开发_嘉兴APP软件开发_嘉兴最专业的APP开发公司-嘉兴雷鸟软件科技有限公司 
雷鸟科技,提供 嘉兴app制作嘉兴app开发嘉兴iOS开发嘉兴Android开发嘉兴app设计嘉兴手机app制作服务.  服务热线:13396739763 / 13136206268
您的位置:首页 > APP资讯 >

Android 禁止使用摄像头功能

客户需求在工厂内使用手机时,为了保证不涉密企业的资料信息。不允许员工使用手机的照相和摄影功能,雷鸟科技找到了解决方案。首先,客户的手机必须保证是4.0以上的操作系统,android在Camera里有一个setCameraDisable的功能,同时可以使用getCameraDisable函数得到摄像头是否被打开的状态来监控

下面上代码:

一、SUDeviceAdminReceiver类

public class SUDeviceAdminReceiver extends DeviceAdminReceiver{

@Override  
    public DevicePolicyManager getManager(Context context) {  
     //   Logger.d("------" + "getManager" + "------");
    
        return super.getManager(context);  
    }  

    @Override  
    public ComponentName getWho(Context context) {  
      //  Logger.d("------" + "getWho" + "------");  
        return super.getWho(context);  
    }  
      
    /** 
     * 禁用 
     */  
    @Override  
    public void onDisabled(Context context, Intent intent) {  
       // Logger.d("------" + "onDisabled" + "------");  
          
        Toast.makeText(context, "禁用设备管理", Toast.LENGTH_SHORT).show();  
          
        super.onDisabled(context, intent);  
    }  
    @Override  
    public CharSequence onDisableRequested(Context context, Intent intent) {  
       // Logger.d("------" + "onDisableRequested" + "------");  
        return super.onDisableRequested(context, intent);  
    }  
      
    /** 
     * 激活 
     */  
    @Override  
    public void onEnabled(Context context, Intent intent) {  
       // Logger.d("------" + "onEnabled" + "------");  
          
        Toast.makeText(context, "启动设备管理", Toast.LENGTH_SHORT).show();  
          
        super.onEnabled(context, intent);  
    }  
    @Override  
    public void onPasswordChanged(Context context, Intent intent) {  
       // Logger.d("------" + "onPasswordChanged" + "------");  
        super.onPasswordChanged(context, intent);  
    }  
    @Override  
    public void onPasswordFailed(Context context, Intent intent) {  
       // Logger.d("------" + "onPasswordFailed" + "------");  
        super.onPasswordFailed(context, intent);  
    }  
    @Override  
    public void onPasswordSucceeded(Context context, Intent intent) {  
       // Logger.d("------" + "onPasswordSucceeded" + "------");  
        super.onPasswordSucceeded(context, intent);  
    }  
    @Override  
    public void onReceive(Context context, Intent intent) {  
       // Logger.d("------" + "onReceive" + "------");  
          
        super.onReceive(context, intent);  
    }  
    
    @Override  
    public IBinder peekService(Context myContext, Intent service) {  
       // Logger.d("------" + "peekService" + "------");  
        return super.peekService(myContext, service);  
    }  
}


二、res下xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<device-admin xmlns:Android="http://schemas.android.com/apk/res/android" >


    <uses-policies>


        <!-- 强行锁定 -->
        <force-lock />
        <!-- 清除所有数据(恢复出厂设置) -->
        <wipe-data />
        <!-- 重置密码 -->
        <reset-password />
        <!-- 限制密码选择 -->
        <limit-password />
        <!-- 监控登录尝试 -->
        <watch-login />




        <disable-camera />
    </uses-policies>


</device-admin>


三、配置文件

<receiver
            android:name=".SUDeviceAdminReceiver"
            android:label="@string/app_name"
            android:permission="android.permission.BIND_DEVICE_ADMIN" >
            <meta-data
                android:name="android.app.device_admin"
                android:resource="@xml/mdms" />


            <intent-filter>
                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
            </intent-filter>
        </receiver>


四、Activity里调用

private DevicePolicyManager manger;
private ComponentName componentName;

//1.获取设备管理接收者
manger=(DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
        
//2.申请权限
//MyAdmin 这个类是继承了DeviceAdminReceiver 
componentName=new ComponentName(this, SUDeviceAdminReceiver.class);

//3.是否获得管理员权限
if(manger.isAdminActive(componentName)){
manger.setCameraDisabled(componentName, true);

boolean ret = manger.getCameraDisabled(componentName);


if(ret){
textView1.setText("不能使用");
}else{
textView1.setText("可以使用");
}
        }else{
            Toast.makeText(this, "请先激活管理员",Toast.LENGTH_LONG).show();
            openAdmin(null);
        }


/**
     * 用代码开启管理员权限
     *
     * @param view
     */


    public void openAdmin(View view) {
        /*创建添加设备管理员的意图*/
        Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
        /*设置需要激活的组件*/
        ComponentName mDeviceAdminSample = new ComponentName(this, SUDeviceAdminReceiver.class);


        intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdminSample);
        /*给用户提示。给出开启的理由*/
        intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
                "开启即可实现管理员");
        startActivity(intent);
    }

 

 嘉兴雷鸟软件科技有限公司
 13396739763 13136206268 (节假日均可拨打) 0573-83698396 (周一至周六可拨打)


售前咨询QQ:点击这里给我发消息    点击这里给我发消息


技术支持QQ:点击这里给我发消息

所在地址: 浙江省嘉兴市城南路1539号创业大厦


网址:app.lei-niao.com

嘉兴APP公司

嘉兴APP公司

服务内容



浙公网安备 33040202000168号