1.UI设计

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"tools:context=".MainActivity"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="关闭手电筒"android:layout_marginLeft="30px"android:layout_marginTop="500px"android:layout_centerHorizontal="true"android:id="@+id/btn1"/><Buttonandroid:id="@+id/btn2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="30px"android:layout_marginTop="900px"android:layout_centerHorizontal="true"android:text="打开手电筒"/></RelativeLayout>
  1. 控制手电筒亮灭的工具类FlashUtils
package com.example.demo2;import android.content.Context;
import android.content.pm.FeatureInfo;
import android.content.pm.PackageManager;
import android.hardware.camera2.CameraAccessException;
import android.hardware.camera2.CameraManager;
import android.os.Build;
import android.hardware.Camera;
import android.text.method.Touch;import java.util.Optional;public class FlashUtils {private CameraManager manager;private Camera mCamera = null;private Context context;private boolean status = false;     // 记录手机状态FlashUtils(Context context){if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){manager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);}this.context = context;}// 打开手电筒public void open(){if(status) {   //如果是打开状态,不需要打开return;}if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.P){try {manager.setTorchMode("0",true);} catch (CameraAccessException e){e.printStackTrace();}} else {PackageManager packageManager = context.getPackageManager();FeatureInfo[] features = packageManager.getSystemAvailableFeatures();for(FeatureInfo featureInfo : features){// 判断设备是否支持闪光灯if(packageManager.FEATURE_CAMERA_FLASH.equals(featureInfo.name)) {if(null == mCamera){mCamera = Camera.open();}Camera.Parameters parameters = mCamera.getParameters();parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);mCamera.setParameters(parameters);mCamera.startPreview();}}}status = true;      // 记录手电筒状态为打开}// 关闭手电筒public void cloes(){if(!status)    // 如果是已经关闭的状态 不需要打开{return;}if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {try {manager.setTorchMode("0",false);}catch (CameraAccessException e){e.printStackTrace();}} else {if(mCamera != null){mCamera.stopPreview();mCamera.release();mCamera = null;}}status = false; // 记录手电筒为关闭}
}
  1. 在MainActivity中调用工具类来控制手电筒
package com.example.demo2;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;public class MainActivity extends AppCompatActivity {Button btn1;Button btn2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn1 = findViewById(R.id.btn1);btn2 = findViewById(R.id.btn2);FlashUtils flashUtils = new FlashUtils(this);btn1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//  关闭手电筒Log.d("chen", "close led");flashUtils.cloes();}});btn2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// 打开手电筒Log.d("chen", "open led");flashUtils.open();}});}
}
  1. 测试apk所用手机是Android 9.0系统,可以正常控制手电筒亮灭

Android 9使用APP来控制手电筒功能相关推荐

  1. STM32F103单片机温湿度等监测Android手机蓝牙APP显示控制设计

    这次给大家介绍的是一个温湿度,光照烟雾等监测设计,包含开关灯.基于STM32F103单片机(正点原子mini板).蓝牙模块.Android APP完成.软件是Android studio 2021.1 ...

  2. android 如何去控制第三方音乐播放app之控制QQ音乐

    最近在做一个需求,要在桌面去控制qq音乐的播放(即,可以播放暂停,上一曲,下一曲显示歌名和歌手名).接下来一一说下完成这个需求的心路历程. 1.在网上查腾讯有没有针对qq音乐提供SDK接口,结果发现, ...

  3. 【单片机】Android手机USB外接STM32单片机通过ADB实现投屏反向控制的功能

    Android手机USB外接STM32单片机通过ADB实现投屏反向控制的功能 前言 一.功能演示 二.实现步骤 1.开发环境 2.代码分析 (1)USBHost处理函数 (2)ADB事务处理函数 (3 ...

  4. 搭建直播平台过程中Android端直播APP源码是如何实现连麦功能的?

    直播平台强大的变现能力是大家有目共睹的,很多开发商在搭建直播平台时为了增加用户黏性,纷纷将直播中加入连麦功能. 目前市场上通用的有两种连麦方案:本地混流和云端混流.本地混流即主播和连麦观众分别推一路流 ...

  5. 8.【小萌伴Android】手电筒功能及其实现

    前面三篇介绍了[小萌伴]百宝箱中的三款原生小游戏,这里说说百宝箱中另一功能模块--实用小应用... [小萌伴]手电筒.gif 小应用主要包含了四个功能:今日历史.新闻.手电筒和找手机:今日历史和新闻模 ...

  6. Android 开启手电筒功能(完美适配4.x, 5.x, 6.x )

    最近在逛GooglePlay应用市场的时候发现很多的手电筒功能居然都带有广告感觉非常的不可思议的.而且这些应用不仅仅有广告而且安装包还特别的大,我本来还想下载一个来玩玩的,后来看了他们的东西感觉也不过 ...

  7. 【Android】Android开发初学者实现拨打电话的功能,拨打电话app小demo实现

    作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 首先先给大家看一下最终实现的效果: ...

  8. Android App Bundle:动态功能模块

    目录 Android App Bundle 创建动态功能模块 动态功能模块 与主模块建立关联 部署应用 按需分发On-Demand 免安装分发 自 2021 年 8 月起,Google Play 将开 ...

  9. Android——App内文件分享功能

    国内的Android开发者,在遇到App内有分享功能时,基本都是对接友盟分享.ShareSDK分享等第三方SDK.简单的集成SDK以及配置之后,即可分享至多个不同App平台.反而很少来使用Androi ...

最新文章

  1. OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔总结
  2. [Deep-Learning-with-Python]神经网络入手学习[上]
  3. 04 - JavaSE之异常处理
  4. MongoDB集群分片部署指南
  5. python可以写安卓应用吗_python可以编写android程序吗?
  6. 工作177:时间戳转换
  7. MaxCompute存储力持续升级,每年节省不止一个亿
  8. python notebook配置_使用 Jupyter Notebook 配置 Stata\Python\Julia\R
  9. 大话设计模式之原型模式
  10. 69. Php部分常见问题总结
  11. 7-8 阅览室 (20 point(s))
  12. android 系统宏定义,Android.mk宏定义demo【转】
  13. FGUI弧形UI实现
  14. 基于HTML+CSS+JavaScript制作美食文化网站 ——卡通创意的烧烤(5个页面) html静态网页设计制作 dw静态网页成品模板素材网页 web前端网页设计与制作 div静态网页设计
  15. 算法分析与设计:贪心算法
  16. oeasy教您玩转vim - 90 - # 语法定义syntax
  17. php微信公众号开发难吗,PHP微信公众号开发的两种模式
  18. 数字化转型定义及优秀案例
  19. 深度学习_目标检测_SPP(Spatial Pyramid Pooling)详解
  20. Blender 2.9

热门文章

  1. 图解Java多线程设计模式——Java多线程基础
  2. Apifox 测试工具
  3. Java进行图像缩放
  4. P4 安装bmv2 详细教程(更新中。。)
  5. usb声卡驱动(六):usb声卡中的pcm打开和关闭
  6. 2021年我国热泵市场规模、产值及进出口分析[图]
  7. ssm+java企业公司产品分销商管理系统
  8. 阿里云 PAI 免费试用搭建 stable-diffusion-WebUI
  9. win8.1自带防火墙如何阻止程序联网
  10. Canvas绘制圆点线段