本文介紹了在Android Wear OS(即CSV)上保存和傳輸智能手表傳感器數(shù)據(jù)的最佳方式是什么?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我已經(jīng)為Fossil Gen 6智能手表編寫了一個Wear應(yīng)用程序,它從機載傳感器提取光體積圖(PPG)數(shù)據(jù),并不斷更新屏幕上的值。下面是我的onSensorChanged
方法,它識別來自PPG傳感器的事件并相應(yīng)地更新TextView
對象。我還嘗試使用FileWriter
對象將每個數(shù)據(jù)寫入CSV文件。
@Override
public void onSensorChanged(SensorEvent event) {
// On event from PPG sensor, update text on screen and
// write to CSV file.
if (event.sensor.getType() == 65572) {
sensorData = event.values[0];
String dataString = Float.toString(sensorData);
textView.setText(dataString);
try {
writer.write(dataString);
} catch (IOException e) {
e.printStackTrace();
}
}
}
文件編寫器在MainActivity
:
的頂部聲明
private FileWriter writer;
,并在onResume
方法中定義:
protected void onResume() {
super.onResume();
try {
writer = new FileWriter("data.csv",true);
} catch (IOException e) {
e.printStackTrace();
}
}
我不確定要做的是讓有這個文件可供寫入,它應(yīng)該以某種方式存儲在手表上還是配對的手機上,以及我如何最終在我的PC上檢索CSV數(shù)據(jù)以便在MATLAB中進行分析,等等。(有沒有更好的方法來做到這一點?)謝謝!
推薦答案
我首先想說的是,有很多方法可以做到這一點,而最佳方法在很大程度上取決于您的用例的具體情況(有時還包括個人喜好)。
要記住的最重要的一點是,與普通手機相比,這款手表的資源(電池、內(nèi)存、CPU)非常有限。
無論您的確切解決方案是什么樣子,都要記住以下幾點:
寫入文件是一項開銷很大的操作。對從傳感器接收到的每個數(shù)據(jù)點執(zhí)行此操作并不理想。請考慮將數(shù)據(jù)保存到數(shù)據(jù)庫using Room。一個更簡單的替代方案是,如果應(yīng)用程序崩潰或設(shè)備意外重啟,可能會丟失一些數(shù)據(jù),只要你沒有問題,就是將其保存在內(nèi)存中。這可以使用一個基本數(shù)組或某種類型的映射(時間戳和值)來完成,具體取決于您需要什么數(shù)據(jù)。您還可以混合使用這兩種方法并成批保存數(shù)據(jù)。
在手表和手機之間發(fā)送數(shù)據(jù)也很昂貴。我強烈建議把東西儲存在手表上,只有在需要的時候才轉(zhuǎn)移到手機上。這可以是手動觸發(fā),每天在手表充電時的特定時間,也可以是其他一些巧妙的策略,以將對手表電池壽命的影響降至最低。
您可以使用Wearable Data Layer API將數(shù)據(jù)發(fā)送到手機。您必須根據(jù)需要傳輸?shù)臄?shù)據(jù)量設(shè)置MessageClient
或ChannelClient
。如果您堅持使用Android支持的數(shù)據(jù)結(jié)構(gòu)(而不是創(chuàng)建自己的數(shù)據(jù)結(jié)構(gòu)),那么將它們發(fā)送過來應(yīng)該是相當簡單的。
如果您需要處理或格式化數(shù)據(jù),以便在MatLab中輕松分析數(shù)據(jù),請考慮在手機上而不是在手表上執(zhí)行此操作。當然,對大小合理的數(shù)據(jù)集進行更簡單的操作可以直接在手表上執(zhí)行。
您決定如何將文件發(fā)送到您的計算機的具體方式超出了我在此嘗試回答的范圍。要做到這一點,有很多有據(jù)可查的方法。最簡單的方法是手動transfer it via adb。這也可以直接從手表上完成,因此您甚至不必向手機發(fā)送數(shù)據(jù)。
這篇關(guān)于在Android Wear OS(即CSV)上保存和傳輸智能手表傳感器數(shù)據(jù)的最佳方式是什么?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,