不幸的是通過其他的答案,延遲(或採樣率)爲提示你設置是隻然而,對於你的應用程序所要求的最低限度的建議(對於系統),這可以根據運行的其他應用程序或進入省電模式的設備(關閉CPU等)而發生劇烈變化。我能夠獲得較好採樣率的一種方式是通過記錄服務中的數據,使該服務成爲前臺服務並使用PARTIAL_WAKE_LOCK標誌進行電源鎖定。
我把代碼在這個要點 https://gist.github.com/julian-ramos/6ee7ad8a74ee4b442530
這要點有這樣更多的代碼比你需要的只是要注意接下來的兩個方法
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// //Power management
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
wl.acquire();
.....}
上面的代碼防止OS轉關閉CPU
我們使這個服務前臺服務
NotificationCompat.Builder notificationBuilder =
new NotificationCompat.Builder(getApplicationContext())
.setContentTitle("Title")
.setContentText("hola")
.setContentIntent(viewPendingIntent);
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
not=notificationBuilder.build();
notificationManager.notify(notificationId,not);
startForeground(notificationId, not);
與普通服務不同,上述代碼使服務成爲操作系統的優先級。例如,前臺服務的例子是音樂播放器。
使用此代碼,即使在手錶自動關閉屏幕後,我也能夠獲得所需的採樣率。
我已經嘗試了華碩變壓器平板電腦上的代碼,我有同樣的問題。所有傳感器延遲使用50赫茲的頻率。我也會尋找答案。 – vgonisanz 2012-02-20 10:02:54
您可以嘗試使用仿真器的各種配置,以確定它是依賴於操作系統還是依賴於設備。我敢打賭,價值取決於你的硬件,不能改變...另外,閱讀此:http://stackoverflow.com/questions/4224223/android-how-to-increase-accelerometer-sampling-rate – 2012-02-28 12:32:19
謝謝,我會嘗試與模擬器! – 2012-02-28 14:37:38