Getting Started with Pedometer
このコンテンツはまだあなたの言語で利用できません。
This guide will walk you through integrating the Capacitor Pedometer plugin into your application.
Installation
Section titled “Installation”Install the plugin using npm:
npm install @capgo/capacitor-pedometernpx cap synciOS Configuration
Section titled “iOS Configuration”Add motion usage description to your Info.plist:
<key>NSMotionUsageDescription</key><string>We need access to your motion data to track steps and activity</string>Android Configuration
Section titled “Android Configuration”The plugin automatically adds the ACTIVITY_RECOGNITION permission. For Android 10+ (API 29), you need to request this permission at runtime.
Basic Usage
Section titled “Basic Usage”Import the Plugin
Section titled “Import the Plugin”import { CapacitorPedometer } from '@capgo/capacitor-pedometer';Check Availability
Section titled “Check Availability”const checkPedometer = async () => { const result = await CapacitorPedometer.isAvailable(); console.log('Step counting available:', result.stepCounting); console.log('Distance available:', result.distance); console.log('Floor counting available:', result.floorCounting); console.log('Pace available:', result.pace); console.log('Cadence available:', result.cadence);};Request Permissions
Section titled “Request Permissions”const requestPermission = async () => { const permission = await CapacitorPedometer.requestPermissions(); console.log('Permission status:', permission.activityRecognition);};Get Current Measurements
Section titled “Get Current Measurements”const getMeasurements = async () => { const measurements = await CapacitorPedometer.getMeasurement({ startDate: new Date(Date.now() - 24 * 60 * 60 * 1000), // 24 hours ago endDate: new Date() });
console.log('Steps:', measurements.numberOfSteps); console.log('Distance:', measurements.distance, 'meters'); console.log('Floors ascended:', measurements.floorsAscended); console.log('Floors descended:', measurements.floorsDescended);};Start Real-time Updates
Section titled “Start Real-time Updates”// Add listener for real-time updatesCapacitorPedometer.addListener('measurement', (data) => { console.log('Steps:', data.numberOfSteps); console.log('Distance:', data.distance); console.log('Pace:', data.currentPace); console.log('Cadence:', data.currentCadence);});
// Start receiving updatesawait CapacitorPedometer.startMeasurementUpdates();Stop Updates
Section titled “Stop Updates”await CapacitorPedometer.stopMeasurementUpdates();CapacitorPedometer.removeAllListeners();Complete Example
Section titled “Complete Example”import { CapacitorPedometer } from '@capgo/capacitor-pedometer';
class PedometerService { private listener: any;
async initialize() { // Check availability const available = await CapacitorPedometer.isAvailable(); if (!available.stepCounting) { console.error('Step counting not available'); return false; }
// Request permissions const permission = await CapacitorPedometer.requestPermissions(); if (permission.activityRecognition !== 'granted') { console.error('Permission denied'); return false; }
return true; }
async startTracking() { // Add listener this.listener = CapacitorPedometer.addListener('measurement', (data) => { this.onMeasurement(data); });
// Start updates await CapacitorPedometer.startMeasurementUpdates(); console.log('Pedometer tracking started'); }
async stopTracking() { await CapacitorPedometer.stopMeasurementUpdates(); if (this.listener) { this.listener.remove(); } console.log('Pedometer tracking stopped'); }
onMeasurement(data: any) { console.log('Steps today:', data.numberOfSteps); console.log('Distance:', (data.distance / 1000).toFixed(2), 'km'); }
async getTodaySteps() { const today = new Date(); today.setHours(0, 0, 0, 0);
const measurements = await CapacitorPedometer.getMeasurement({ startDate: today, endDate: new Date() });
return measurements.numberOfSteps; }}
// Usageconst pedometer = new PedometerService();await pedometer.initialize();await pedometer.startTracking();Best Practices
Section titled “Best Practices”- Check Availability: Always verify pedometer features before use
- Request Permissions: Handle permission requests gracefully
- Battery Optimization: Stop updates when not needed
- Error Handling: Wrap calls in try-catch blocks
- Background Updates: Configure background modes for continuous tracking
Common Issues
Section titled “Common Issues”Permission Denied
Section titled “Permission Denied”const handlePermissionDenied = async () => { const permission = await CapacitorPedometer.checkPermissions();
if (permission.activityRecognition === 'denied') { alert('Motion tracking permission is required. Please enable it in Settings.'); }};Not Available on Device
Section titled “Not Available on Device”const checkSupport = async () => { const available = await CapacitorPedometer.isAvailable();
if (!available.stepCounting) { alert('Step counting is not available on this device'); return false; }
return true;};Next Steps
Section titled “Next Steps”- Explore the API Reference for complete documentation
- Check out the example app
- See the tutorial for advanced implementation