Я хочу обнаружить действия по GoogleApiClient.но я не могу сделать это за одинаковые периоды.Я использую этот код в методе onCreate для обнаружения действий.например, первый журнал происходит в 7: 7 ", второй в 8: 1" и третий в 12: 14 ".
mApiClient = new GoogleApiClient.Builder(this)
.addApi(ActivityRecognition.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
mApiClient.connect();
onConnected метод:
@Override
public void onConnected( Bundle bundle) {
Intent intent = new Intent( this, ActivityRecognizedService.class );
PendingIntent pendingIntent = PendingIntent.getService( this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT );
ActivityRecognitionClient activityRecognitionClient = ActivityRecognition.getClient(this);
Task task = activityRecognitionClient.requestActivityUpdates(0, pendingIntent);
}
наконец класс ActivityRecognizedService:
public class ActivityRecognizedService extends IntentService {
public ActivityRecognizedService() {
super("ActivityRecognizedService");
}
public ActivityRecognizedService(String name) {
super(name);
}
@Override
protected void onHandleIntent(Intent intent) {
if(ActivityRecognitionResult.hasResult(intent)) {
ActivityRecognitionResult result = ActivityRecognitionResult.extractResult(intent);
handleDetectedActivities( result.getProbableActivities() );
}
}
private void handleDetectedActivities(List<DetectedActivity> probableActivities) {
for( DetectedActivity activity : probableActivities ) {
Log.e( "ActivityRecogition", "detected activity in service "+ activity.toString());
switch( activity.getType() ) {
case DetectedActivity.IN_VEHICLE: {
Log.e( "ActivityRecogition", "In Vehicle: " + activity.getConfidence() );
break;
}
case ...
}
}
}
- Как я могу ограничить обнаружение определенным периодом времени?
- Как я могу заставить обнаружение активности в определенные периоды?
Благодаря этому коду все стало намного лучше.
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Но я хочу еще один способ сделать это ...