关于解决ispeak爱口语不能向上兼容Android10版本的方案

问题发现

近期学校老师要求使用ispeak软件来进行口语练习,但是作为Android 10的用户我自闭了,真是第一次因为手机版本过高而自卑。

原因分析

就是ispeak爱口语不能向上兼容Android 10版本运行,不能调用新的API
在Android系统中软件开发者没有及时更新。导致兼容性不好,不同版本的系统其API版本也不同,自然有些接口也不同,新的平台不能使用旧的API,旧的平台也使用不了新的API。
事实上,开发者只是没有过华为的应用审查罢了。

问题解决

原理: 应用多开来绕过兼容性问题升级
原理分析:
前人之述备矣,不愿长篇大论
VirtualApp原理解析(1)–初始化及注入流程
实操:
环境:
华为nova4
版本号:10.0.0.157 GPU Turbo
EMUI:10.0.0
Android:10
步骤:

  1. 下载并安装ispeak和多开分身12
  2. 现在打开ispeak即为闪退,打开多开分身,对ispeak多开处理。同意用户协议
    点击制作分身

3
选择并制作,注意多开时要选中内存隔离,否则可能失败!!!在这里插入图片描述
打开允许安装在这里插入图片描述
继续安装在这里插入图片描述
3. 安装完成后手机里就有两个ispeak,不要动,打开分身。111
4. 打开后发现弹窗
5. 点击立即更新2222
6. 安装新下载的应用333
7. 最后卸载原来的分身和多开分身,ispeak已经可以正常使用了。4444
其实挺简单的,软件兼容性问题大多可以通过多开来实现。
突然发现很神奇,但是没有精力做深入研究了~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要获取Android设备的摆臂次数,可以利用设备的加速度传感器。以下是基本步骤: 1. 获取加速度传感器的实例: ``` SensorManager sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); Sensor accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); ``` 2. 注册传感器侦听器: ``` sensorManager.registerListener(sensorEventListener, accelerometer, SensorManager.SENSOR_DELAY_NORMAL); ``` 3. 实现传感器侦听器: ``` private final SensorEventListener sensorEventListener = new SensorEventListener() { private float[] gravity = new float[3]; private float[] linearAcceleration = new float[3]; private int count = 0; private boolean isPeak = false; @Override public void onSensorChanged(SensorEvent event) { final float alpha = 0.8f; // 加速度除以重力加速度得到加速度的分量 gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0]; gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1]; gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2]; // 去除重力加速度影响 linearAcceleration[0] = event.values[0] - gravity[0]; linearAcceleration[1] = event.values[1] - gravity[1]; linearAcceleration[2] = event.values[2] - gravity[2]; // 检测峰值 if (isPeak(linearAcceleration[1])) { isPeak = true; } else if (isPeak) { count++; isPeak = false; } } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } private boolean isPeak(float value) { if (value > 2) { return true; } return false; } }; ``` 这里的`isPeak()`方法用于检测加速度峰值,可以根据具体需求进行修改。`count`变量用于记录摆臂次数,可以在需要的地方获取该变量的值即可。 4. 在不需要时注销传感器侦听器: ``` sensorManager.unregisterListener(sensorEventListener); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值