搖晃
一個用於檢測手機晃動並提供方向資訊的 Flutter 套件。
- 星標
- 103
- 分支
- 72
- 最近推送(UTC)
- 2025年4月2日
- 專案狀態
- 未封存
原始 README
以下為英文專案原文快照,最新內容請造訪 GitHub。
shake
A Flutter package to detect phone shakes with directional information.
Features
- Shake detection with directional information (X, Y, Z axes)
- Force measurement
- Noise filtering option
- Configurable shake count and timing parameters
Installation
Add this to your package's pubspec.yaml file:
dependencies:
shake: ^3.0.0
Usage
Basic Usage
ShakeDetector detector = ShakeDetector.autoStart(
onPhoneShake: (ShakeEvent event) {
// Access detailed shake information
print('Shake direction: ${event.direction}');
print('Shake force: ${event.force}');
print('Shake timestamp: ${event.timestamp}');
}
);
OR
ShakeDetector detector = ShakeDetector.waitForStart(
onPhoneShake: (ShakeEvent event) {
// Handle the shake event
}
);
detector.startListening();
Breaking Changes in v3.0.0
Version 3.0.0 introduced a breaking change where onPhoneShake now receives a ShakeEvent parameter with information about direction, force, and timestamp.
If you're upgrading from v2.x, you need to update your callback to accept the ShakeEvent parameter:
// Before (v2.x)
ShakeDetector detector = ShakeDetector.autoStart(
onPhoneShake: () {
print('Shake detected!');
}
);
// After (v3.x)
ShakeDetector detector = ShakeDetector.autoStart(
onPhoneShake: (ShakeEvent event) {
print('Shake detected!');
// Now you can also access event.direction, event.force, etc.
}
);
Noise Filtering
ShakeDetector detector = ShakeDetector.autoStart(
onPhoneShake: (ShakeEvent event) {
// Handle shake
},
useFilter: true, // Enable noise filtering for more reliable detection
);
Custom Configuration
ShakeDetector detector = ShakeDetector.autoStart(
onPhoneShake: (ShakeEvent event) {
// Handle shake
},
// Configure sensitivity - lower value makes it more sensitive
shakeThresholdGravity: 2.0,
// Minimum time between shake detections (ms)
shakeSlopTimeMS: 300,
// Reset shake count after this time (ms)
shakeCountResetTime: 2000,
// Number of shakes required before triggering
minimumShakeCount: 2,
);
Directional Shake Information
The ShakeEvent provides the direction of the shake through the direction property:
ShakeDetector detector = ShakeDetector.autoStart(
onPhoneShake: (ShakeEvent event) {
switch (event.direction) {
case ShakeDirection.x:
print('Shaken horizontally (left/right)');
break;
case ShakeDirection.y:
print('Shaken vertically (up/down)');
break;
case ShakeDirection.z:
print('Shaken forward/backward');
break;
case ShakeDirection.undefined:
print('Complex shake pattern');
break;
}
}
);
Stopping Detection
To stop listening:
detector.stopListening();
Configuration Parameters
| Parameter | Description | Default |
|---|---|---|
| shakeThresholdGravity | Acceleration threshold for shake detection (in g) | 2.7 |
| shakeSlopTimeMS | Minimum time between shake detections (in ms) | 500 |
| shakeCountResetTime | Time before shake count resets (in ms) | 3000 |
| minimumShakeCount | Number of shakes required before shake is triggered | 1 |
| useFilter | Whether to apply noise filtering | false |
License
This project is licensed under the MIT License - see your project's license file for details.
語言DartRubyJavaSwiftKotlinObjective-C
分類
使用的依賴
依賴清單 4 項
- sensors_plus
^6.1.1 - flutter
{"sdk":"flutter"} - flutter_test開發依賴
{"sdk":"flutter"} - flutter_lints開發依賴
^5.0.0
如何選擇適合專案的儲存庫?
先依使用情境篩選,再比較專案活躍情況,最後到原始儲存庫確認使用要求。
- 透過儲存庫名稱、作者或描述搜尋,再依技術分類縮小範圍。
- 綜合星標、分支與最近推送比較專案;星標反映社群關注,不保證品質。
- 使用前在 GitHub 確認 README、授權條款與 Issues。
來源與維護
“A repository is the most basic element of GitHub.”
GitHub Docs — About repositories ↗