gpt4 book ai didi

android - 在android中检测抖动

转载 作者:太空宇宙 更新时间:2023-11-03 13:48:10 26 4
gpt4 key购买 nike

我正在尝试在用户摇动设备 10 次时调用 API。我尝试了很多 git 示例和堆栈溢出解决方案,但没有一个确实解决了我的问题。其中一些检测到 10 次之前或 10 次之后的震动。我试过SeiamicShakeDetector图书馆。请给我一些有值(value)的解决方案。

最佳答案

我已经使用这个库完成了:

  1. 在您的 build.gridle 文件中添加依赖项

    所有项目{存储库{...Maven { url 'https://jitpack.io' }}

    依赖关系{编译'com.github.safetysystemtechnology:android-shake-detector:v1.2'

  2. 授予您应用 list 文件的权限

<uses-feature android:name="android.hardware.sensor.accelerometer" android:required="true" />

如果你将在后台运行,请注册你的广播接收器

<receiver android:name=".ShakeReceiver">
<intent-filter>
<action android:name="shake.detector" />
</intent-filter>
</receiver>
  1. 像这样在 onCreate 方法中启动它:

    私有(private)ShakeDetector shakeDetector;

    @覆盖protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);

     buildView();

    ShakeOptions options = new ShakeOptions()
    .background(true)
    .interval(1000)
    .shakeCount(2)
    .sensibility(2.0f);

    this.shakeDetector = new ShakeDetector(options).start(this, new ShakeCallback() {
    @Override
    public void onShake() {
    Log.d("event", "onShake");
    }
    });

    //IF YOU WANT JUST IN BACKGROUND
    //this.shakeDetector = new ShakeDetector(options).start(this);

  2. 覆盖 onStop 方法并停止它

    @覆盖 protected void onStop() { super .onStop();shakeDetector.stopShakeDetector(getBaseContext());

  3. 像这样覆盖 onDistroy 方法和分发:

    @覆盖 protected 无效 onDestroy() {shakeDetector.destroy(getBaseContext()); super .onDestroy();

(*) 可选步骤:如果您将在后台运行,请创建您的广播接收器

public class ShakeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (null != intent && intent.getAction().equals("shake.detector")) {
...
}
}
}

关于android - 在android中检测抖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38633936/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com