android - 如果相机被任何应用程序使用,如何关闭或调暗相机?
问题描述
我想制作一个控制相机的应用程序。如果打开此应用时使用相机,则应关闭相机或将相机调暗。这可能吗?
//this method is checking the camera
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
manager.registerAvailabilityCallback(new CameraManager.AvailabilityCallback() {
@Override
public void onCameraAvailable(String cameraId) {
super.onCameraAvailable(cameraId);
}
@Override
public void onCameraUnavailable(String cameraId) {
super.onCameraUnavailable(cameraId);
//how do I turn off the camera ?
}
}, new Handler());
}
解决方案
您创建一个类来接受 DeviceAdmin 权限:
public class MyDevicePolicyReceiver extends DeviceAdminReceiver {
private static final String LOG_TAG = "LOG";
@Override
public void onDisabled(Context context, Intent intent) {
}
@Override
public void onEnabled(Context context, Intent intent) {
}
@Override
public CharSequence onDisableRequested(Context context, Intent intent) {
return disableRequestedSeq;
}
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
}
}
你注册它如下:
public ComponentName mDeviceAdminSample;
public DevicePolicyManager mDPM;
mDeviceAdminSample = new ComponentName(getApplicationContext(),
MyDevicePolicyReceiver.class);
mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
if(mDPM == null || !mDPM.isAdminActive(mDeviceAdminSample)) {
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,mDeviceAdminSample);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
"Your_String");
startActivityForResult(intent, ANY_REQUEST_CODE);
return;
推荐阅读
- javascript - 下一个图像功能在调用时不显示
- node.js - ionic 3 中的 socket.io 客户端不工作?
- python - python f'string 在 pd.Series.map 函数中不起作用
- php - 无法在后端设计配置中更改 magento2 主题
- windows - Windows 命令行:在新的控制台窗口中执行 .bat 文件
- scala - 将以前的数据与 Spark Scala 中的当前数据进行比较
- powerbuilder - 如何在powerbuilder中禁用复制粘贴功能到单行编辑器
- rest - 将输入参数传递给 API
- regex - 用于以随机顺序匹配强制和可选字符的正则表达式
- ruby-on-rails - 带有 Rails API 的 Angular:“加载资源失败:服务器响应状态为 401(未授权)”