Awareness Snapshot API не работает для Android

Я хочу иметь возможность получать информацию о текущем местоположении и активности в своем приложении для Android. Я реализовал это, но, похоже, он никогда ничего не возвращает. Когда я отлаживаю, он никогда не вызывает метод OnResult. Просто ничего не возвращает. Например, в приведенном ниже коде он должен возвращать текущую активность пользователя как I/Awareness: DetectedActivity [type=STILL, trust=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


person user1380637    schedule 22.07.2016    source источник


Ответы (1)


У вас есть действительный ключ API в файле manifest.xml? И включили API осведомленности в своем проекте? - для получения дополнительной информации см. google-doc: https://developers.google.com/awareness/android-api/get-a-key

person Nick Nock    schedule 26.07.2016
comment
Да, ключ API добавлен в мой файл манифеста. Этот код работает с moto x, но когда я пытаюсь запустить его с Nexus 6p, он не работает. - person user1380637; 26.07.2016
comment
На вашем телефоне Nexus установлена ​​стандартная прошивка или, например, Cyanogenmod? У меня такая же проблема, но когда он не работает, это с cm rom. - person Totoo; 30.08.2016