-1

Я работаю над приложением отслеживания активности пользователей.Как отправить данные в службу активации ActivityRecognition, не заменяя ее данные о деятельности?

Я использовал API распознавания активности для отслеживания активности пользователя.

Я установил услугу Intent для вызова активности пользователя с заданным интервалом, например каждые 20 секунд.

Ниже мое признания активности намерения класс обслуживания:

/** 
* Called when a new activity detection update is available. 
*/ 
@Override 
protected void onHandleIntent(Intent intent) { 
    // mPId = intent.getStringExtra("PID"); 

--- Когда я посылаю некоторые данные, ставить дополнительным наряду с ожиданием умысла здесь я не получаю пользовательскую активность намерений данных. Активность пользователя Намерение данные заменяются моими данными

// If the intent contains an result data 
    if (ActivityRecognitionResult.hasResult(intent)) { 
     // Get the update 
     ActivityRecognitionResult result = ActivityRecognitionResult 
       .extractResult(intent); 

     // Log the update 
     saveActivityRecognitionResult(result); 
    } 
} 

выше код работает отлично, если я не прошли какие-либо собственные данные.

Я хочу отправить некоторые данные вместе с этим намерением. Я установил эти данные вместе с ожидающими намерений. Но если я установил данные, я получаю только данные, а не данные о намерениях активности пользователя.

Я не хочу использовать общие предпочтения для хранения и извлечения его из службы намерений, которые не будут работать.

Пожалуйста, помогите мне решить эту проблему.

+0

Опубликовать код, который вы используете, чтобы «установить свои собственные данные в намерении» –

ответ

0

Я не буду передавать это намерение дальше, но беру данные в ваш onHandleIntent и добавьте его другим намерениям.

Я предполагаю, что вы пытаетесь передать это намерение какой-либо службе, которая хранит данные о деятельности в sqlite или что-то еще ... есть улов.

Не используйте IntentService, так как до или во время работы его рабочий телефон может засыпать, если вы не приобретете WakeLock. Познакомьтесь с WakefulBroadcastReceiver, чтобы справиться с этим.

Другое решение - просто использовать BroadcastReceiver, так как это гарантированный телефон не будет спать.