Bagian ini menunjukkan cara menggunakan Snapshot API untuk mendapatkan status saat ini untuk setiap jenis konteks yang didukung. Untuk mengetahui informasi selengkapnya, lihat Mulai. Untuk mengetahui detail sinyal kontekstual yang tidak digunakan lagi, buka pemberitahuan yang dapat diluaskan berikut:
Mendapatkan aktivitas saat ini
Untuk mendapatkan aktivitas pengguna saat ini, panggil getDetectedActivity(), yang menampilkan ActivityRecognitionResult
yang berisi informasi tentang aktivitas terbaru pengguna.
Metode getDetectedActivity() memerlukan izin com.google.android.gms.permission.ACTIVITY_RECOGNITION. Tambahkan izin
ini ke AndroidManifest.xml.
Untuk mendapatkan aktivitas pengguna saat ini, lakukan langkah-langkah berikut:
- Panggil getSnapshotClient()untuk membuat instanceSnapshotClient.
- Gunakan addOnSuccessListeneruntuk membuatOnSuccessListeneryang dapat memprosesDetectedActivityResponse.
- Panggil getStatus()untuk memastikan hasilnya valid.
- Panggil - DetectedActivityResponse.getActivityRecognitionResult()untuk menampilkan- ActivityRecognitionResult. Anda dapat menggunakan ini untuk mendapatkan banyak aspek aktivitas pengguna saat ini. Contoh:- Panggil getMostProbableActivity()untuk mendapatkan hanya aktivitas yang paling mungkin.
- Panggil getProbableActivities()untuk mendapatkan daftar aktivitas terbaru yang diberi peringkat berdasarkan probabilitas.
- Panggil getActivityConfidence()untuk menampilkan nilai keyakinan untuk jenis aktivitas tertentu.
- Panggil hasResult()untuk mendeteksi apakahIntentberisiActivityRecognitionResult.
 
- Panggil 
Contoh kode berikut menggunakan getMostProbableActivity()
untuk mendapatkan aktivitas terdeteksi yang paling mungkin, dan mencatat hasilnya ke
konsol:
Awareness.getSnapshotClient(this).getDetectedActivity()
    .addOnSuccessListener(new OnSuccessListener<DetectedActivityResponse>() {
        @Override
        public void onSuccess(DetectedActivityResponse dar) {
            ActivityRecognitionResult arr = dar.getActivityRecognitionResult();
            DetectedActivity probableActivity = arr.getMostProbableActivity();
            int confidence = probableActivity.getConfidence();
            String activityStr = probableActivity.toString();
            mLogFragment.getLogView().println("Activity: " + activityStr
                + ", Confidence: " + confidence + "/100");
        }
    })
Mendapatkan beacon terdekat
Untuk mendapatkan informasi tentang beacon di sekitar, panggil getBeaconState().
Data suar terdiri dari konten, jenis, dan namespace lampiran.
Metode getBeaconState() memerlukan izin android.permission.ACCESS_FINE_LOCATION. Tambahkan izin ini ke AndroidManifest.xml.
Selain itu, Anda harus mengaktifkan Nearby Messages API untuk project Google Developers Console Anda. Untuk informasi selengkapnya, lihat Pendaftaran dan Kunci API
dan Mulai.
Untuk mendapatkan informasi tentang beacon di sekitar, lakukan langkah-langkah berikut:
- Periksa apakah pengguna telah memberikan izin yang diperlukan. Contoh berikut memeriksa apakah izin - android.permission.ACCESS_FINE_LOCATIONdiberikan. Jika tidak, pengguna akan diminta untuk memberikan izin.- if (ContextCompat.checkSelfPermission( MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions( MainActivity.this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, MY_PERMISSION_LOCATION ); return; }
- Tentukan - BeaconState.TypeFilter. Tindakan ini hanya menampilkan beacon dengan lampiran yang terdaftar dengan namespace dan jenis yang ditentukan. Anda juga dapat memfilter berdasarkan kecocokan byte demi byte pada konten lampiran. Contoh berikut menunjukkan cara membuat filter jenis:- private static final List<BeaconState.TypeFilter> BEACON_TYPE_FILTERS = Arrays.asList( BeaconState.TypeFilter.with( "my.beacon.namespace", "my-attachment-type"), BeaconState.TypeFilter.with( "my.other.namespace", "my-attachment-type"));
- Panggil - getSnapshotClient.getBeaconState().
- Gunakan - addOnSuccessListeneruntuk membuat- OnSuccessListeneryang dapat memproses- BeaconStateResponse.
- Panggil - getStatus()untuk memastikan hasilnya valid.
- Panggil - BeaconStateResponse.getBeaconState()untuk menampilkan status beacon.
- Panggil - BeaconState.getBeaconInfo()untuk mendapatkan- BeaconState.BeaconInfo.
Contoh berikut menunjukkan cara mendapatkan info beacon:
Awareness.getSnapshotClient(this).getBeaconState(BEACON_TYPE_FILTERS)
    .addOnSuccessListener(new OnSuccessListener<BeaconStateResponse>() {
        @Override
        public void onSuccess(BeaconStateResponse beaconStateResponse) {
            BeaconStateResult beaconStateResult = beaconStateResponse.getBeaconState();
            BeaconState.BeaconInfo beaconInfo = beaconStateResponse.getBeaconInfo();
        }
    })
Mendapatkan status headphone
Untuk mendeteksi apakah headphone dicolokkan ke perangkat, panggil getHeadphoneState(),
yang membuat status deteksi HeadphoneStateResponse
dengan OnSuccessListener disetel untuk mendeteksi.
Kemudian, Anda dapat memanggil getHeadphoneState() untuk mendapatkan HeadphoneState.
Untuk mendapatkan status headphone saat ini, lakukan langkah-langkah berikut:
- Panggil getSnapshotClient.getHeadphoneState().
- Gunakan addOnSuccessListeneruntuk membuatOnSuccessListeneryang dapat memprosesHeadphoneStateResponse.
- Panggil getStatus()untuk memastikan hasilnya valid.
- Jika berhasil, panggil
HeadphoneStateResponse.getHeadphoneState()untuk menampilkan status headphone. Nilai ini adalahPLUGGED_INatauUNPLUGGED.
Contoh kode berikut menunjukkan cara menggunakan getHeadphoneState():
Awareness.getSnapshotClient(this).getHeadphoneState()
    .addOnSuccessListener(new OnSuccessListener<HeadphoneStateResponse>() {
        @Override
        public void onSuccess(HeadphoneStateResponse headphoneStateResponse) {
            HeadphoneState headphoneState = headphoneStateResponse.getHeadphoneState();
            boolean pluggedIn = headphoneState.getState() == HeadphoneState.PLUGGED_IN;
            String stateStr =
                "Headphones are " + (pluggedIn ? "plugged in" : "unplugged");
            mLogFragment.getLogView().println(stateStr);
        }
    })
    .addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            Log.e(TAG, "Could not get headphone state: " + e);
        }
    });
Dapatkan lokasi
Anda bisa mendapatkan lokasi pengguna saat ini (lintang-bujur) dengan panggilan ke getLocation(), yang akan menampilkan LocationResponse.
Kemudian, Anda dapat memanggil LocationResponse.getLocation()
untuk mendapatkan Location 
dengan data lokasi saat ini.
Metode getLocation() memerlukan izin android.permission.ACCESS_FINE_LOCATION. Tambahkan izin ini ke
AndroidManifest.xml.
Untuk mendapatkan lokasi saat ini, lakukan langkah-langkah berikut:
- Periksa apakah pengguna telah memberikan izin yang diperlukan. Contoh berikut memeriksa apakah izin - android.permission.ACCESS_FINE_LOCATIONtelah diberikan. Jika tidak, pengguna akan diminta untuk memberikan izin.- if (ContextCompat.checkSelfPermission( MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions( MainActivity.this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, MY_PERMISSION_LOCATION ); return; }
- Panggil - getSnapshotClient.getLocation().
- Gunakan - addOnSuccessListeneruntuk membuat- OnSuccessListeneryang dapat memproses- LocationResponse.
- Panggil - getStatus()untuk memastikan hasilnya valid.
- Panggil - LocationResponse.getLocation()untuk menampilkan- Locationsaat ini.
Contoh berikut menunjukkan cara mendapatkan lokasi saat ini:
Awareness.getSnapshotClient(this).getLocation()
    .addOnSuccessListener(new OnSuccessListener<LocationResponse>() {
        @Override
        public void onSuccess(LocationResponse locationResponse) {
            Location loc = locationResponse.getLocationResult();
        }
    })