我有一个想法,它需要创建一个在后台运行的服务,但我正在努力实际编码,不知道如何做到这一点.
解决方法 要创建对震动事件敏感的应用:A.在清单中 – 注册启动接收器.它将确保您的应用程序始终处于激活状态
设备重启后:
<receiver androID:name=".OnBootReceiver"> <intent-filter> <action androID:name="androID.intent.action.BOOT_COMPLETED" /> <action androID:name="androID.intent.action.QUICKBOOT_POWERON" /> </intent-filter> </receiver>
B.创建一个摇动事件监听器类:
class ShakeEventListener implements SensorEventListener { @OverrIDe public voID onSensorChanged(SensorEvent event) { handleShake(event); // see below }}
C.引导接收器实现 – 为TYPE_ACCELEROMETER事件注册一个振动监听器
public class OnBootReceiver extends broadcastReceiver { @OverrIDe public voID onReceive(Context context,Intent intent){ SensorManager sManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE); sensor = sManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); sManager.registerListener(new ShakeEventListener(),sensor,SensorManager.SENSOR_DELAY_norMAL); // or other delay }}
D.如果检测到摇动动作 – 开始主要活动:
voID handleShake(event) { if (shake movement detected) { // start main activity Intent intent = new Intent(getBaseContext(),myActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); }}
我们唯一遗漏的是“检测到震动运动”的逻辑.
Here你可以找到一个相当不错的基础实现.
使用函数onSensorChanged().您可能需要对其进行变换
直到你做对了.
权限:
<uses-permission androID:name="androID.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>总结
以上是内存溢出为你收集整理的如何创建一个在屏幕锁定时激活震动事件的Android应用程序?全部内容,希望文章能够帮你解决如何创建一个在屏幕锁定时激活震动事件的Android应用程序?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)