我正在開發android本機應用程序。我的要求是獲得設備的當前活動,如運行,in_vehicle,靜止等等。我使用了ActivityRecognitionAPI並將pendingintent設置爲通過IntentService接收活動更改。我給了每個更新的5秒間隔。它未能在一段時間內提供活動變化,並再次開始提供活動。之後,我首選Awareness SnapshotAPI以獲取活動狀態。它也是同樣的結果,沒有定期提供活動。這兩種API有時都提供,很多時候不提供。我使用GooglePlayServices 10.2.0版本進行開發。任何人都知道這些東西和解決方案的原因是什麼,以獲得定期的活動更新..Android活動識別問題
在此先感謝。
我想顯示我的應用程序用戶的活動,如他正在散步,跑步等。這是我的要求。
方法1:使用ActivityRecognition.API
Intent intent = new Intent(mContext, RequestActivityService.class);
PendingIntent callbackIntent = PendingIntent.getService(mContext, 111,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
ActivityRecognition.ActivityRecognitionApi.requestActivityUpdates(googleApiClient,5000, callbackIntent);
public class RequestActivityService extends IntentService {
public RequestActivityService() {
super("RequestActivityService");
}
@Override
protected void onHandleIntent(Intent intent) {
if (ActivityRecognitionResult.hasResult(intent)) {
ActivityRecognitionResult result = ActivityRecognitionResult
.extractResult(intent);
DetectedActivity mostProbableActivity = result
.getMostProbableActivity();
int confidence = mostProbableActivity.getConfidence();
int activityType = mostProbableActivity.getType();
String activityName = getNameFromType(activityType);
}
}
**
//谷歌API客戶端我嘗試這樣的方式來獲得活動更新。它開始提供活動信息,但Intent服務有時不被調用,並且再次開始啓動該意圖。所以我無法顯示正確的活動信息。
方式2:使用Awareness.API
Awareness.SnapshotApi.getDetectedActivity(googleApiClient).
setResultCallback(new ResultCallback<DetectedActivityResult>() {
@Override
public void onResult(@NonNull DetectedActivityResult detectedActivityResult) {
if (!detectedActivityResult.getStatus().isSuccess()) {
Log.i("Could not get the activity","");
return;
}
ActivityRecognitionResult ar = detectedActivityResult.getActivityRecognitionResult();
DetectedActivity probableActivity = ar.getMostProbableActivity();
String activityType = RequestActivityService.getNameFromType(probableActivity.getType());
int activityConfidence = probableActivity.getConfidence();
}
});
//谷歌API客戶端**我這個嘗試另一種方法,使用這個API,我們可以遞歸調用此方法並經常收到活動信息。但它也有時提供,有時會檢測到ActivityResult.getStatus()不成功。如果我試圖獲取狀態碼和狀態消息,狀態碼返回15,狀態消息將爲空。
這兩種方式都無法定期更新活動,而且我更多地使用GooglePlayService 10.2.0版本。我已經從Github測試了ActivityRecognition的GoogleSamples。這也是同樣的結果。我不知道如何達到我的要求。希望你現在能理解我的需求和我所面對的事情。得到響應後
請更具體地說明您正在嘗試做什麼以及如何做?那麼問題是什麼。如果您包含代碼,這將非常有用 –
我想顯示我的應用用戶的活動,如他正在散步,跑步等。這是我的要求。 –
因此,您正在討論Android中由Google Fit而非Activity類表示的用戶活動。對 ? –