私はアンドロイドのネイティブアプリケーションを開発しています。私の要求は、実行中、in_vehicle、stillなどのデバイスの現在のアクティビティを取得することです。 ActivityRecognitionAPIを使用して、IntentServiceを通じてアクティビティの変更を受け取るようにpendingintentを設定しました。私はそれぞれの更新のために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);
}
}
を使用して
//のGoogle APIクライアント**私は、活動の更新を取得するには、この方法を試してみました。アクティビティ情報の提供を開始しましたが、インテントサービスが時々呼び出されず、再びインテントを開始しました。だから私は正しい活動情報を示すことができません。
ウェイ2:
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();
}
});
Awareness.API
を使用して//のGoogle APIクライアントは**私たちは再帰的にこのメソッドを呼び出すと、頻繁に活動情報を取得することができ、このAPIを使用して、この別の方法を試してみました。しかし、時にはそれを提供し、時にはdetectedActivityResult.getStatus()も成功しませんでした。ステータスコードとステータスメッセージを取得しようとすると、ステータスコードは15を返し、ステータスメッセージはnullになります。
これらの方法は、GooglePlayService 10.2.0バージョンを使用していた以上、定期的にアクティビティを更新できませんでした。私はGithubのActivityRecognitionのGoogleサンプルをテストしました。それも同じ結果です。私は私の要求を達成するために何をするのか分からない。今は自分の要求と私が直面していることを理解することができますように。
してください、あなたがやろうとし、どのようにしているかについて具体的に?それでは、何が問題なのですか?あなたがコードを含めると素晴らしいと助けになるだろう... –
私は歩いたり、走っているように、自分のアプリユーザーの行動を表示しようとしています。これは私の必要条件です。 –
AndroidのGoogle Fit not Activityクラスに代表されるユーザーのアクティビティについて話しています。右 ? –