有些Android 手机没有手机电筒的快捷方式,网上的那些软件很多都是插有广告,附带下载,还要点击进入软件....作为Android程序员的自己就自己写了一个手电筒的开关app,只需要点击桌面上的图标就可以开启手电筒,方便使用:

原理:点击图片后, 启动service,在service里进行手电的开启与关闭,并mainActivity里判断有没有一个service在运行,如果有说明手电已经开了,再次点击图标则关闭手电,       停止service。

mainActivity  代码如下:

@Override
    protected void onResume() {                                                                                                      //注意,这段代码写在onresume里。
        // TODO Auto-generated method stub
        super.onResume();
        if (MainActivity.isServiceWork(MainActivity.this, "com.example.light.LightService")) {     //判断有没有这个名字的service在运行
            Intent intent1 = new Intent(this, LightService.class);
            stopService(intent1);
        } else {
            Intent intent = new Intent(this, LightService.class);
            startService(intent);
        }

finish();                                                                                                                                            //开启或关闭电筒后,关闭改页面
    }

service代码

package com.example.light;
import android.app.Service;
import android.content.Intent;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.os.IBinder;
public class LightService extends Service{
private Camera camera;
private Parameters params;
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
camera = Camera.open();
params = camera.getParameters();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
params.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(params);
camera.startPreview(); // 开始亮灯
return START_STICKY;
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
camera.stopPreview();
camera.release();
camera = null;
params = null; // 开始亮灯
}
}

在清单文件里注册service:

<service
            android:name="com.example.light.LightService"
            android:enabled="true"
            android:exported="true"
            android:process="system"
            >
            <intent-filter
                android:priority="1000"
                ></intent-filter>
        </service>

此时运行后,可能会闪屏,可以继续如下代码:

在res里的styles里加如下代码:

<style name="Theme.AppStartLoadTranslucent" parent="android:Theme">    
                <item name="android:windowIsTranslucent">true</item>   
            <item name="android:windowNoTitle">true</item>    
    </style>

并在清单文件里修改application         android:theme="@style/Theme.AppStartLoadTranslucent" 。

到这边就可以了,可以自己搞张图标,就可以用啦!

Android 一键开启手电筒相关推荐

  1. Android实现一键开启自由窗口、分屏、画中画模式——画中画模式

    转载请注明出处:https://blog.csdn.net/sunmmer123 Android实现一键开启自由窗口.分屏.画中画模式系列 一键开启进入自由窗口模式 一键开启进入分屏模式 一键进入画中 ...

  2. Android实现一键开启自由窗口、分屏、画中画模式——自由窗口模式

    转载请注明出处:https://blog.csdn.net/sunmmer123 忙过一段时间后,新需求又来了"多个应用/页面间在不用退出或者切换的情况下,可同时操作" 咋一听是不 ...

  3. Android实现一键开启自由窗口、分屏、画中画模式——分屏模式

    转载请注明出处:https://blog.csdn.net/sunmmer123 Android实现一键开启自由窗口.分屏.画中画模式系列 一键开启自由窗口模式 一键开启进入分屏模式 一键开启画中画模 ...

  4. 0.6闪光灯二进制编码通信android源码手电筒手机密码器频率控制 as4.0版 密码123456 支持所有android2.2到10及以上系统 Android7.0以前和7.0以后开启闪光灯

    演示:0.6闪光灯二进制编码通信android源码手电筒手机密码器频率控制 as4.0版 密码123456.apk http://6.wjsou.com/uploads/1594994912599.a ...

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

    原文http://blog.csdn.net/mynameishuangshuai Android4x.5x.6x的手电筒开启方法,写成公共方法,分享给大家. 添加摄像机和闪光灯权限 <uses ...

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

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

  7. Android 一键拨号

    一.题目 Android 一键拨号 二.环境 AndroidStudio 三.代码实现 SharedPreference存储电话号码 此链接为SharedPreference存储电话号码.与一键拨号, ...

  8. [Android] 如何制作手电筒程序

    继iphone的手电筒开发完成后,接下来我便著手开始Android如何制作手电筒的程序 我的跨平台引擎框架CloudBox已建立好iphone版的程序,但却对于Android上如何操控闪光灯一无所知 ...

  9. 安卓7.0以后如何开启手电筒

    安卓7.0以后如何开启手电筒 安卓7.0以后应该如何打开手电筒,使用闪光灯? 来看一下代码: private CameraManager manager = (CameraManager) getSy ...

最新文章

  1. 阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅消费
  2. 浅析:setsockopt()改善程序的健壮性【转】
  3. Linux Grep 命令说明
  4. 一夜爆火的SLAM技术即将颠覆哪些领域
  5. 物盟解决安防监控的“理想与现实”
  6. linux检测是否安装eclipse,肿么看linux中eclipse是否安装成功
  7. 数据可视化如何做会更好
  8. python有向图遍历_python – 获取有向图的所有边对. networkx
  9. 通达信资金净流入公式_资金净流入公式——股票实战技术指标公式研究有缘看本博定多活30年——东方财富网博客...
  10. Python Excel操作人口普查
  11. 微软行星云计算Planetary Computer——行星计算机数据资源管理器介绍!和GEE有啥不同?
  12. 自制汉化工具 文件提取/导入/压缩工具
  13. 软考高级系统架构设计师系列论文四十九:论微服务架构及其应用
  14. 麒麟座迷你板STLINK使用
  15. 只能打单面的打印机如何打双面
  16. 循环视频背景:让网站首页动起来是怎样的一种感觉
  17. SQLSERVER2000--验证码一直不能通过验证
  18. 深度学习笔记(学习中)
  19. 码云果园:术后人群怎么吃水果
  20. 仿微信、微博发朋友圈,文字+图片+视频

热门文章

  1. Python之每日一练生成激活码
  2. html js涨幅率怎么计算,JS加速线指标的计算公式及买卖分析
  3. 用户与计算机网络接口,用户与计算机网络的接口是
  4. mysql 联表详解_MySQL多表查询详解
  5. 服务器并发IO性能提升之路 — 从网络编程基础到epoll
  6. MySQL中删除所有表的方法
  7. java 抽象类 多态_必学——Java抽象类、接口、多态
  8. 【ERP】ERP,MRP和MRPII的关系是怎样的?(20年3月29日第二章学习笔记)
  9. 噪音通道模型_噪声信道模型
  10. php5.6使用mysql_php5.6+MySQL5.6+Apache2.4环境搭建安装图文教程