成功案例

来电闪关灯闪烁功能

作者:admin 来源:原创 时间:2020年06月19日 06:01:57浏览:
如果是做手机的可以在系统的某些服务上添加,例如incallUi应用上添加的,第三方应用可以通过添加监听电话状态广播实现。 private Boolean isFlash=false; private float currentBatteryCount;//当前手机电量 private CameraManager manager; //初始化值获取相机服务 manager=(CameraManager) context.getSystemService(Context.CAMERA_SERVICE); if(InCallState.INCOMING==newState){ if(Settings.System.getInt(mContext.getContentResolver(),FLASH_MODE, 1)==1 &&? !isFlash && currentBatteryCount >=15){//控制闪关灯开关,电量大于15% ? isFlash=true; ? ? ?new Thread(new Runnable() {//在新的线程中启动闪烁功能 ? ? ? @Override ? ? ? ? public void run() { ? ? ? ? while (isFlash) {//循环开关闪关灯 ? ? ? ? startFlash(); ? ? ? ? } ? ? ? ? } ? ? ? }).start(); ? }else{ ? ? isFlash=false; ? }else{ isFlash=false; } public void startFlash(){ //判断是否有相机权限 if (ContextCompat.checkSelfPermission(mContext, permission.CAMERA) ?==PackageManager.PERMISSION_GRANTED) { open();//开启闪关灯 try { Thread.sleep(500);//持续开启闪关灯时间500毫秒 } catch (InterruptedException e) { e.printStackTrace(); } close();//关闭闪关灯 try { Thread.sleep(500);//关闭闪关灯后等待500毫秒再循环打开 } catch (InterruptedException e) { e.printStackTrace(); } ? ? }else{ Log.d("TAG","startFlash need request camera permission "); } ? ? } private void open() { try { ? manager.setTorchMode("0", true); ? ? android.util.Log.d("TAG","open flash"); ? ?} catch (CameraAccessException e) { ? ? ?e.printStackTrace(); ? ?} } private void close() { ? try { ? manager.setTorchMode("0", false);//关闭闪关灯 ? android.util.Log.d("TAG","proximitysensor open flash"); ? } catch (CameraAccessException e) { ? ? e.printStackTrace(); ? } }
(来源:原创   admin)  

1.bbin遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本网的原创文章,请转载时务必注明文章作者和"来源:bbin",不尊重原创的行为bbin或将追究责任;3.作者投稿可能会经bbin编辑修改或补充。

阅读延展