当前位置: 首页 > wzjs >正文

网站建设的重点是什么网站流量查询工具

网站建设的重点是什么,网站流量查询工具,黄冈crm系统,抖音平台建站工具A13中,可以要求做一个开关来控制摄像头是否可用,约束所有使用摄像头的应用。思路:设置中增加开关设置一个属性值,在摄像头调用实现层增该值判断即可 一 开关的开发: 设置-安全中增加开关选项 代码部分&#x…

A13中,可以要求做一个开关来控制摄像头是否可用,约束所有使用摄像头的应用。思路:设置中增加开关设置一个属性值,在摄像头调用实现层增该值判断即可        

一 开关的开发:

设置-安全中增加开关选项

代码部分:

Settings/res/xml/security_dashboard_settings.xml

//........忽略代码  <Preferenceandroid:order="100"android:key="security_advanced_settings"android:title="@string/security_advanced_settings"android:summary="@string/summary_placeholder"android:fragment="com.android.settings.security.SecurityAdvancedSettings"settings:controller="com.android.settings.security.SecurityAdvancedSettingsController"settings:keywords="@string/security_advanced_settings_keywords" /><Preferenceandroid:order="90"android:title="@string/apk_install_setting"><intentandroid:targetPackage="com.android.settings"android:targetClass="com.android.settings.security.ApkInstallActivity" /></Preference>+ <Preference+    android:order="80"+    android:title="@string/custom_function_control_setting">+        <intent+        android:targetPackage="com.android.settings"+      +android:targetClass="com.android.settings.security.CustomFunctionSettingActivity" />+   </Preference> 
</PreferenceScreen>

 新增界面,如下,自定义属性字段,可以参考上一篇文章Android SystemProperties 读写机制详解和案例使用 。就是使用开关组件读写属性

package com.android.settings.security;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.app.Activity;
import java.io.IOException;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.android.settings.R;
import android.provider.Settings;
import android.widget.Toast;
import android.text.TextUtils;
import android.os.SystemProperties;import android.widget.CompoundButton;
import android.content.Context;import android.widget.Switch;/*** 自定义功能开关*/
public class CustomFunctionSettingActivity extends Activity implements CompoundButton.OnCheckedChangeListener, View.OnClickListener {private Switch cameraSwbtn;    private static final String CAMERA_ENABLE_KEY = "persist.sys.flyscale.cam"; private Context mContext;@Overrideprotected void onCreate(Bundle savedInstanceState) {mContext = this;super.onCreate(savedInstanceState);setContentView(R.layout.custom_function_control);cameraSwbtn = findViewById(R.id.swbtn_camera);cameraSwbtn.setOnCheckedChangeListener(this);String propValue = SystemProperties.get(CAMERA_ENABLE_KEY, "1"); // 默认启用// String cameraEnable = Settings.Global.getString(getContentResolver(), Settings.Global.CUSTOM_FUNCTION_CAMERA_ENABLE);if ("1".equals(propValue)) {cameraSwbtn.setChecked(true);}else {cameraSwbtn.setChecked(false);}	cameraSwbtn.setOnClickListener(this);}@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {// switch (buttonView.getId()) {//     case R.id.toggle_button://         Toast.makeText(this, "toggle state changed : " + isChecked, Toast.LENGTH_SHORT).show();//         break;//     case R.id.switch_button://         Toast.makeText(this, "wlan state changed : " + isChecked, Toast.LENGTH_SHORT).show();//         break;//     default://         Toast.makeText(this, "no state changed", Toast.LENGTH_SHORT).show();// }if (buttonView== null) {return;}}@Overridepublic void onClick(View v) {if (  v == cameraSwbtn) {boolean isChecked = cameraSwbtn.isChecked();saveValue(isChecked);if (isChecked) {Toast.makeText(mContext, R.string.custom_function_camera_change_enable,Toast.LENGTH_SHORT).show();}else {Toast.makeText(mContext, R.string.custom_function_camera_change_disable,Toast.LENGTH_SHORT).show();}}}private void saveValue(boolean enabled) {String  value = "0";if (enabled) {value = "1";}else {value = "0";}try {SystemProperties.set(CAMERA_ENABLE_KEY, enabled ? "1" : "0");} catch (Exception e) {Log.e("CustomFunction", "Failed to set property", e);}// Settings.Global.putString(getContentResolver(), Settings.Global.CUSTOM_FUNCTION_CAMERA_ENABLE,value);}
}

布局如下

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:text="@string/custom_function_control_setting"android:textSize="24dp"android:layout_margin="10dp"android:gravity="center"android:textColor="@android:color/black"android:layout_width="match_parent"android:layout_height="wrap_content"/>
<LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center_vertical"android:layout_marginTop="30dp"android:orientation="horizontal"><TextViewandroid:textSize="20dp"android:layout_marginLeft="10dp"android:text="@string/custom_function_control_camera_title"android:gravity="center"android:textColor="@android:color/black"android:layout_width="wrap_content"android:layout_height="wrap_content"/>            <View android:layout_height="1dp"android:layout_weight="1"android:layout_width="0dp"/><Switchandroid:id="@+id/swbtn_camera"android:layout_width="wrap_content"android:layout_height="wrap_content"android:switchMinWidth="0dp"android:layout_marginLeft="10dp"android:layout_marginRight="20dp"android:showText="false"android:switchPadding="10dp"android:textOff="close"android:textOn="open" /></LinearLayout></LinearLayout>

二 摄像头控制逻辑添加:

//framework/av/services/camera/libcameraservice/CameraService.cpp 下/*** 控制摄像头开关是否允许使用*/const bool USING_CAMERA_ENABLE_LOCK = false;。。。。。。。。。。。。忽略代码
Status CameraService::connectDevice(const sp<hardware::camera2::ICameraDeviceCallbacks>& cameraCb,const String16& cameraId,const String16& clientPackageName,const std::optional<String16>& clientFeatureId,int clientUid, int oomScoreOffset, int targetSdkVersion,/*out*/sp<hardware::camera2::ICameraDeviceUser>* device) {ATRACE_CALL();Status ret = Status::ok();String8 id = String8(cameraId);sp<CameraDeviceClient> client = nullptr;String16 clientPackageNameAdj = clientPackageName;int callingPid = CameraThreadState::getCallingPid();bool systemNativeClient = false;if (doesClientHaveSystemUid() && (clientPackageNameAdj.size() == 0)) {std::string systemClient =StringPrintf("client.pid<%d>", CameraThreadState::getCallingPid());clientPackageNameAdj = String16(systemClient.c_str());systemNativeClient = true;}if (oomScoreOffset < 0) {String8 msg =String8::format("Cannot increase the priority of a client %s pid %d for ""camera id %s", String8(clientPackageNameAdj).string(), callingPid,id.string());ALOGE("%s: %s", __FUNCTION__, msg.string());return STATUS_ERROR(ERROR_ILLEGAL_ARGUMENT, msg.string());}+  if (USING_CAMERA_ENABLE_LOCK) {+      if (!isFlyscaleCameraEnabled()) {+          String8 msg =+              String8::format("flyscale camera not allow,Camera disabled by device +policy");+       ALOGE("%s: %s", __FUNCTION__, msg.string());+       return STATUS_ERROR(ERROR_DISABLED, msg.string());+       }++   }if (CameraServiceProxyWrapper::isCameraDisabled()) {String8 msg =String8::format("Camera disabled by device policy");ALOGE("%s: %s", __FUNCTION__, msg.string());return STATUS_ERROR(ERROR_DISABLED, msg.string());}// enforce system camera permissionsif (oomScoreOffset > 0 &&!hasPermissionsForSystemCamera(callingPid, CameraThreadState::getCallingUid())) {String8 msg =String8::format("Cannot change the priority of a client %s pid %d for ""camera id %s without SYSTEM_CAMERA permissions",String8(clientPackageNameAdj).string(), callingPid, id.string());ALOGE("%s: %s", __FUNCTION__, msg.string());return STATUS_ERROR(ERROR_PERMISSION_DENIED, msg.string());}
。。。。。。。。。。。。。忽略代码

OVER~

http://www.dtcms.com/wzjs/49451.html

相关文章:

  • 阿荣旗人民政府网站建设项目自动点击器怎么用
  • 网站建设首页模板域名大全
  • 温州建设信息网站黑龙江新闻
  • 网批做衣服的网站营销策略主要包括哪些
  • 如何在工商局网站做企业年报百度广告联盟app下载官网
  • 10种网络营销方法青岛seo网站管理
  • 一个网站同时做竞价和seo网站如何优化一个关键词
  • 网站建设公司怎样布局搜索广告是什么
  • 网站的功能和特色微信朋友圈广告投放
  • 正能量erp软件下载网站六种常见的网络广告类型
  • 外贸订单怎么找资阳市网站seo
  • 做橡胶的网站十大app开发公司排名
  • 产品网站建设公司怎么提升关键词的质量度
  • 极简wordpress主题seo技巧是什么意思
  • 温州网站建设首选龙诚互联seo什么意思
  • 盐城网站制作哪家好热点营销案例
  • 高品质网站建设信息流广告推广
  • 深圳航空官网机票预订优化大师平台
  • 江津集团网站建设百度正版下载
  • 公司网站建设有哪些石家庄seo外包的公司
  • 响应式网站什么用网页设计主题参考
  • wordpress做登陆页面模板北京正规seo搜索引擎优化价格
  • 万网空间 wordpress沈阳网站推广优化
  • 长沙专业网站制作长沙seo关键词
  • 网站建设的费用在哪里可以发布自己的广告
  • wordpress升级说版本低seo优化是做什么的
  • 酒店网络营销推广方案奶盘seo伪原创工具
  • 优质的做pc端网站seo网站诊断方案
  • 网站建设作业教程济南最新消息今天
  • 天津市免费建站新手怎么做网络销售