ANDROID11 自动锁屏 安卓手机自动锁屏

您所在的位置:网站首页 安卓手机流氓锁屏怎么设置 ANDROID11 自动锁屏 安卓手机自动锁屏

ANDROID11 自动锁屏 安卓手机自动锁屏

2024-07-13 11:53| 来源: 网络整理| 查看: 265

ANDROID11 自动锁屏 安卓手机自动锁屏 转载

daleiwang 2023-09-23 14:14:13

文章标签 ANDROID11 自动锁屏 android开发 传感器 锁屏 android 文章分类 Android 移动开发

 本文的例子,是一个非常有趣的例子。该例子中会用到两个知识点,首先,1.是利用方向传感器来检测手机与人脸的距离来确定是否要去锁屏。2.是获取android设备管理器来进行锁屏的操作。其实该功能非常实用,比如:在打电话时手机靠近人体会自动锁屏,而拿开时又会变亮。也是利用传感器实现的。

代码的实现:

一.首先是在MainActivity中来实现对方向传感器的一系列操作:      1.首先,activity_main布局文件的实现:

  2.java代码的实现,具体的意思代码中已有所解释:

public class MainActivity extends AppCompatActivity { private Button start; private Button stop; private Button exit; private TextView sensorinfo_tv; Intent intent; private SensorManager sm=null; private Sensor promixty=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (null==sm){ sm= (SensorManager) getSystemService(SENSOR_SERVICE); promixty=sm.getDefaultSensor(Sensor.TYPE_PROXIMITY); } String sensorinfo; if (null!=promixty){ sensorinfo="传感器名称:"+promixty.getName()+"\n" +"设备版本:"+ promixty.getVersion()+"\n" +"供应商:"+promixty.getVendor()+"\n"; }else { sensorinfo="无法获取距离传感器的名称"; } initUI(); intent=new Intent(this,AutoLockService.class); start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // start(); } }); stop.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // stop(); } }); exit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // finish(); } }); sensorinfo_tv.setText(sensorinfo); } private void initUI() { start= (Button) findViewById(R.id.start); stop= (Button) findViewById(R.id.stop); exit= (Button) findViewById(R.id.exit); sensorinfo_tv= (TextView) findViewById(R.id.sensorinfo_tv); } private void start() { Bundle bundle=new Bundle(); bundle.putInt("distance",3); bundle.putBoolean("activited",true); intent.putExtras(bundle); startService(intent); } private void stop() { stopService(intent); Toast.makeText(MainActivity.this, "已停止后台服务", Toast.LENGTH_SHORT).show(); } }

if (null==sm){ sm= (SensorManager) getSystemService(SENSOR_SERVICE); promixty=sm.getDefaultSensor(Sensor.TYPE_PROXIMITY); }

private void start() { Bundle bundle=new Bundle(); bundle.putInt("distance",3); bundle.putBoolean("activited",true); intent.putExtras(bundle); startService(intent); }

启动一个AutoLockService 的服务在后台进行距离的运算以及锁屏的监听:

public class AutoLockService extends Service implements SensorEventListener{ private SensorManager sm=null; private Sensor promixty=null; //默认启动锁频 private static boolean ACTIVITED=true; //锁屏距离 private static int LOCK_DIST=3; public AutoLockService() { } @Override public IBinder onBind(Intent intent) { throw new UnsupportedOperationException("Not yet implemented"); } @Override public void onCreate() { super.onCreate(); if (null==sm){ sm= (SensorManager) getSystemService(SENSOR_SERVICE); promixty=sm.getDefaultSensor(Sensor.TYPE_PROXIMITY);//获取距离传感器 } //显示距离传感器数据 if(null!=promixty){ Toast.makeText(AutoLockService.this, "已经创建后台服务", Toast.LENGTH_SHORT).show(); }else { Toast.makeText(AutoLockService.this, "无法找到距离传感器", Toast.LENGTH_SHORT).show(); } } @Override public void onDestroy() { super.onDestroy(); if (null!=sm){ sm.unregisterListener(this); } } @Override public void onStart(Intent intent, int startId) { super.onStart(intent, startId); } @Override public int onStartCommand(Intent intent, int flags, int startId) { if (null!=intent){ Bundle bundle = intent.getExtras(); Toast.makeText(AutoLockService.this, "后台服务已启动", Toast.LENGTH_SHORT).show(); //从intent中获取参数 if (null!=bundle){ int distance = bundle.getInt("distance"); ACTIVITED=bundle.getBoolean("activited"); if (distance>0&&distance


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3