前言:我把我的安卓手机恢复出厂设置以后,手电筒这个软件莫名消失了,想要从应用市场下载一个使用,发现都有广告,那么只好手写一个了。

点击下方链接下载手电筒app:

https://download.csdn.net/download/sinat_30949835/12630516

源码分享:

MainActivity.java

package com.lnkjly.shoudiantong;import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.Camera;
import android.hardware.camera2.CameraAccessException;
import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.CameraManager;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;public class MainActivity extends AppCompatActivity {private Button button;private CameraManager mCameraManager;private boolean isFlashLightOn = false;@TargetApi(Build.VERSION_CODES.M)@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button = (Button) findViewById(R.id.btn_sdt);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {toggleLight(!isFlashLightOn);}});//获取CameraManagerif(mCameraManager == null){mCameraManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);}mCameraManager.registerTorchCallback(mTorchCallback, null);}@TargetApi(Build.VERSION_CODES.M)@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)private CameraManager.TorchCallback mTorchCallback = new CameraManager.TorchCallback() {@Overridepublic void onTorchModeChanged(@NonNull String cameraId, boolean enabled) {super.onTorchModeChanged(cameraId, enabled);
//            Log.Loge(TAG, "onTorchModeChanged cameraId=" + cameraId + ";enabled=" + enabled);isFlashLightOn = enabled;
//            ivFlashlight.setIcon(enabled ? MaterialDrawableBuilder.IconValue.FLASHLIGHT : MaterialDrawableBuilder.IconValue.FLASHLIGHT_OFF);}};@TargetApi(Build.VERSION_CODES.M)@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)public void toggleLight(boolean OPEN) {try {//获取当前手机所有摄像头设备IDString[] ids = mCameraManager.getCameraIdList();for (String id : ids) {CameraCharacteristics c = mCameraManager.getCameraCharacteristics(id);//查询该摄像头组件是否包含闪光灯Boolean flashAvailable = c.get(CameraCharacteristics.FLASH_INFO_AVAILABLE);/** 获取相机面对的方向* CameraCharacteristics.LENS_FACING_FRONT 前置摄像头* CameraCharacteristics.LENS_FACING_BACK 后只摄像头* CameraCharacteristics.LENS_FACING_EXTERNAL 外部的摄像头*/Integer lensFacing = c.get(CameraCharacteristics.LENS_FACING);if (flashAvailable != null && flashAvailable&& lensFacing != null && lensFacing == CameraCharacteristics.LENS_FACING_BACK) {//打开或关闭手电筒mCameraManager.setTorchMode(id, OPEN);break;}}} catch (CameraAccessException e) {e.printStackTrace();}}@RequiresApi(api = Build.VERSION_CODES.M)@Overrideprotected void onDestroy() {super.onDestroy();if(mCameraManager != null && mTorchCallback != null){mCameraManager.unregisterTorchCallback(mTorchCallback);}}
}

app/src/main/res/layout/activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"android:gravity="center"><Viewandroid:layout_weight="1"android:layout_width="wrap_content"android:layout_height="wrap_content"/><Buttonandroid:id="@+id/btn_sdt"android:layout_width="300dp"android:layout_height="300dp"android:text="手电筒"android:layout_marginBottom="50dp"/></LinearLayout></LinearLayout>

build.gradle

apply plugin: 'com.android.application'android {compileSdkVersion 29defaultConfig {applicationId "com.lnkjly.shoudiantong"minSdkVersion 19targetSdkVersion 29versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}
}dependencies {implementation fileTree(dir: 'libs', include: ['*.jar'])implementation 'androidx.appcompat:appcompat:1.1.0'implementation 'androidx.constraintlayout:constraintlayout:1.1.3'testImplementation 'junit:junit:4.12'androidTestImplementation 'androidx.test:runner:1.2.0'androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}

logo的话随便找一个就可以了。

通过以上代码就可以完成最简单的一个手电筒应用哦。

安卓手机手电筒不见了?相关推荐

  1. 安卓手机版wps的pdf能朗读_quot;手机手电筒除了照明,还隐藏了这么多秘密!真的厉害了quot;...

    手机手电筒不就是用来照明的吗?除此之外还有别的功能吗? 当然有,多观察研究就会发现许多平时我们根本就没注意到功能,手电筒不仅仅可以用来照明,还有许多实用的功能,一起来看. 秘密一:辨别身份证真假 在某 ...

  2. 手机为什么手机里的计算机没在桌面,为什么安卓手机锁屏后动态桌面就不见了?教你设置软件后台运行!...

    Hi,大家好,我是小雨.小雨给大家分享过许多动态壁纸和手机宠物的软件,比如3D桌面.微信/QQ来电特效.微信透明背景等.但是一些小伙伴反应会出现这样的一个问题:设置好了都能使用,但是锁屏后再打开手机时 ...

  3. 使用Termux在安卓手机上运行tomcat服务器

    使用Termux在安卓手机上安装运行tomcat服务器 简单背景 探索尝试 尝试一:使用limbo虚拟机(失败) 想念二:使用Linux Deploy安装(直接放弃) 尝试三:使用Aid Learni ...

  4. 苹果手机人脸识别不了是什么原因_iPhone和安卓手机的人脸识别有什么区别?

    文/极客修小编 iPhone怎么识别人脸 今天一则新闻引起了我的注意 苹果供应商AMS宣布,推出全新的"behind OLED"红外接近传感器.刘海中的红外传感器TCS3701,能 ...

  5. 手电筒安卓_iPhone手电筒只能照明?这两个隐藏技巧一定要会,事半功倍!

    科技资讯:可以说现在已经人手一部智能手机了,在众多的手机品牌中,iPhone无论是硬件还是软件系统都是高端的象征,因此,iPhone用户也在不断地增加,大家除了喜欢体验iPhone的流畅度外,还热衷于 ...

  6. 如何使用IMEI号码追踪丢失的安卓手机

    (Android)手机 IMEI(国际移动设备识别码)是GSMA授权的唯一15位代码,就像手机的身份证一样.每当电话使用特定网络拨打或接听电话,发送或接收消息时,都会自动发出并跟踪其IMEI号码.由于 ...

  7. 安卓手机垃圾清理神器!彻底清理你的手机垃圾!手机瞬间飞起来!

    使用安卓手机的小伙伴经常会遇到一个令人头疼的问题"手机时间一久,各种缓存数据和垃圾文件会越来越多,不及时清理的话,不见占用储存空间,而且还会拖慢手机的运行速度",大家可能使用过很多 ...

  8. (一)专题介绍:移动端安卓手机改造成linux服务器linux服务器中安装软件、部署前后端分离项目实战

    快捷目录 前言 一.涉及到的相关技术简介 二.具体实现过程及踩坑杂谈 1.安卓手机改造成linux系统实现方案 2.改造后的手机Linux中软件的安装 3.手机Linux中安装MySQL5.7踩坑实录 ...

  9. termux安装python3失败_把安卓手机性能发挥到极致之-Termux安装Python及Jupyter

    Termux环境使用Python太难看也不方便,比较好的方式是用网页浏览器使用Jupyter来运行Python. 写在前面--利用Jupyter写Java和Python的方法见: myastroton ...

最新文章

  1. 从 NavMesh 网格寻路回归到 Grid 网格寻路。
  2. 如何刷入recovery?
  3. 【GAN优化】GAN优化专栏栏主小米粥自述,脚踏实地,莫问前程
  4. 09_Fibonacci
  5. 如何创建SAP Commerce Cloud Page Templates
  6. 独立版Jexus配置SSL,支持https访问
  7. 量子运算 简单通俗例子_什么是量子计算机? 用一个简单的例子解释。
  8. 12v小型电机型号大全_电机型号参数大全
  9. Visual C# 诠释常用排序算法
  10. WebStorm 格式化代码 - 快捷键
  11. mysql视图实验心得_Mysql学习经验总结【3】
  12. oracle rowid说明
  13. hdu3949(线性基,求第k小的异或和
  14. 最新MATLAB超详细安装教程(附完整文件)
  15. 旋转增量式拉绳编码器出现故障应急处理
  16. hyper-v 安装 openwrt x86 squashfs
  17. 简述计算机桌面背景更换的流程,苹果电脑桌面壁纸怎么更换【详细步骤】
  18. 对excel表格按照某个字段拆分
  19. 如何去掉超链接下划线小集锦
  20. 【水动力学】02 一维河道建模

热门文章

  1. 最近在关注冰岩作坊自己写的一个ftp的搜索
  2. 有界面的python音乐播放器(可下载音乐)
  3. 解决HTML显示中文乱码问题
  4. 《视频解密》中文版(第四版) 第五章 模拟视频接口
  5. 【编程初学者】创建自己的开源项目1-创建远程代码仓库
  6. 通过无人机获取影像或三维模型辅助小区域大比例尺地形图的想法和问题
  7. 80C51单片机复习资料(一)
  8. Linux:快速查看IP地址及修改IP地址
  9. android组合键截图原理,三星安卓手机怎么截图组合键 三星安卓手机截图组合键步骤...
  10. Oracle的学习详解