Android アプリで現在の場所とアクティビティを取得できるようにしたいと考えています。私はそれを実装しましたが、何も返さないようです。デバッグすると、OnResult メソッドが呼び出されません。何も返さないだけです。たとえば、以下のコードでは、現在のユーザー アクティビティを I/Awareness: DetectedActivity [type=STILL,confidence=100] として返す必要がありますが、何も表示されません。
私はこれを Android v6.0 でテストしています。はい、細かい場所がマニフェストにあり、電話でオンになっています。
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION" />
アクティビティを取得するための私のコードは次のとおりです。
public class MainActivity extends AppCompatActivity {
private static final String TAG = "Awareness";
private GoogleApiClient mGoogleApiClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mGoogleApiClient = new GoogleApiClient.Builder(MainActivity.this)
.addApi(Awareness.API)
.build();
mGoogleApiClient.connect();
}
private void initSnapshots() {
Awareness.SnapshotApi.getDetectedActivity(mGoogleApiClient)
.setResultCallback(new ResultCallback<DetectedActivityResult>() {
@Override
public void onResult(@NonNull DetectedActivityResult detectedActivityResult) {
if (!detectedActivityResult.getStatus().isSuccess()) {
Log.e(TAG, "Could not get the current activity.");
return;
}
ActivityRecognitionResult ar = detectedActivityResult.getActivityRecognitionResult();
DetectedActivity probableActivity = ar.getMostProbableActivity();
Log.i(TAG, probableActivity.toString());
}
});
}
}
このリンクもたどっています: https://inthecheesefactory.com/blog/google-awareness-api-in-action/en