Bu bölümde, desteklenen bağlam türlerinin her birinin mevcut durumunu almak için Snapshot API'nin nasıl kullanılacağı gösterilmektedir. Daha fazla bilgi için Başlangıç bölümüne bakın. Kullanımdan kaldırılan içerik sinyalleriyle ilgili ayrıntılar için aşağıdaki genişletilebilir bildirimi açın:
Mevcut etkinliği alma
Kullanıcının mevcut etkinliğini almak için getDetectedActivity() işlevini çağırın. Bu işlev, kullanıcının en son etkinlikleriyle ilgili bilgileri içeren bir ActivityRecognitionResult döndürür.
getDetectedActivity() yöntemi için com.google.android.gms.permission.ACTIVITY_RECOGNITION izni gerekir. Bu izni AndroidManifest.xml için ekleyin.
Kullanıcının mevcut etkinliğini almak için aşağıdaki adımları uygulayın:
- getSnapshotClient()- SnapshotClientörneğini oluşturmak için.
- addOnSuccessListenerkullanarak- DetectedActivityResponsedinleyebilen bir- OnSuccessListeneroluşturun.
- Sonucun geçerli olduğundan emin olmak için getStatus()numaralı telefonu arayın.
- ActivityRecognitionResultürününü iade etmek için- DetectedActivityResponse.getActivityRecognitionResult()numaralı telefonu arayın. Kullanıcının mevcut etkinliğinin birçok yönünü öğrenmek için bu yöntemi kullanabilirsiniz. Örneğin:- Yalnızca en olası etkinliği almak için getMostProbableActivity()numaralı telefonu arayın.
- Olasılığa göre sıralanmış son etkinliklerin listesini almak için getProbableActivities()numaralı telefonu arayın.
- Belirli bir etkinlik türü için güven değerini döndürmek üzere getActivityConfidence()işlevini çağırın.
- Bir IntentöğesininActivityRecognitionResultiçerip içermediğini tespit etmek içinhasResult()işlevini çağırın.
 
- Yalnızca en olası etkinliği almak için 
Aşağıdaki kod örneğinde, algılanan en olası etkinliği almak ve sonucu konsola kaydetmek için getMostProbableActivity() kullanılıyor:
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");
        }
    })
Yakındaki beacon'ları alma
Yakındaki beacon'lar hakkında bilgi almak için getBeaconState() numaralı telefonu arayın.
İşaretçi verileri, eklerin içeriği, türü ve ad alanından oluşur.
getBeaconState() yöntemi için android.permission.ACCESS_FINE_LOCATION izni gerekir. Bu izni AndroidManifest.xml'a ekleyin.
Ayrıca, Google Developers Console projeniz için Nearby Messages API'yi etkinleştirmeniz gerekir. Daha fazla bilgi için Kaydolma ve API Anahtarları
ve Başlangıç başlıklı makaleleri inceleyin.
Yakındaki işaretçiler hakkında bilgi edinmek için aşağıdaki adımları uygulayın:
- Kullanıcının gerekli izinleri verip vermediğini kontrol edin. Aşağıdaki örnekte - android.permission.ACCESS_FINE_LOCATIONizninin verilip verilmediği kontrol edilir. Aksi takdirde kullanıcıdan izin istenir.- 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; }
- BeaconState.TypeFiltertanımlayın. Bu işlev, yalnızca belirtilen ad alanı ve türle kaydedilmiş ekleri olan işaretçileri döndürür. Ayrıca, ek içeriğinde bire bir eşleşmeye göre de filtreleme yapabilirsiniz. Aşağıdaki örnekte, tür filtresinin nasıl oluşturulacağı gösterilmektedir:- 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"));
- getSnapshotClient.getBeaconState()numaralı telefonu arayın.
- addOnSuccessListenerkullanarak- BeaconStateResponsedinleyebilen bir- OnSuccessListeneroluşturun.
- Sonucun geçerli olduğundan emin olmak için - getStatus()numaralı telefonu arayın.
- Beacon durumunu döndürmek için - BeaconStateResponse.getBeaconState()işlevini çağırın.
- BeaconState.getBeaconInfo()numaralı telefonu arayarak- BeaconState.BeaconInfoalın.
Aşağıdaki örnekte, Beacon bilgilerinin nasıl alınacağı gösterilmektedir:
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();
        }
    })
Kulaklık durumunu alma
Kulaklıkların cihaza takılı olup olmadığını algılamak için getHeadphoneState() işlevini çağırın. Bu işlev, OnSuccessListener değeri algılama olarak ayarlanmış bir HeadphoneStateResponse algılama durumu oluşturur.
Ardından getHeadphoneState() numarasını arayarak HeadphoneState değerini alabilirsiniz.
Mevcut kulaklık durumunu almak için aşağıdaki adımları uygulayın:
- getSnapshotClient.getHeadphoneState()numaralı telefonu arayın.
- addOnSuccessListenerkullanarak- HeadphoneStateResponsedinleyebilen bir- OnSuccessListeneroluşturun.
- Sonucun geçerli olduğundan emin olmak için getStatus()numaralı telefonu arayın.
- Başarılı olursa kulaklık durumunu döndürmek için
HeadphoneStateResponse.getHeadphoneState()işlevini çağırın. Bu değerPLUGGED_INveyaUNPLUGGED'dir.
Aşağıdaki kod örneğinde getHeadphoneState() öğesinin nasıl kullanılacağı gösterilmektedir:
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);
        }
    });
Konum alma
getLocation() numarasına yapılan bir aramayla kullanıcının mevcut konumunu (enlem-boylam) alabilirsiniz. Bu arama, LocationResponse döndürür.
Ardından, mevcut konum verilerini içeren bir Location almak için LocationResponse.getLocation() numaralı telefonu arayabilirsiniz.
getLocation() yöntemi için android.permission.ACCESS_FINE_LOCATION izni gerekir. Bu izni AndroidManifest.xml'ye ekleyin.
Mevcut konumu almak için aşağıdaki adımları uygulayın:
- Kullanıcının gerekli izinleri verip vermediğini kontrol edin. Aşağıdaki örnekte - android.permission.ACCESS_FINE_LOCATIONizninin verilip verilmediği kontrol edilir. Aksi takdirde kullanıcıdan izin istenir.- 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; }
- getSnapshotClient.getLocation()numaralı telefonu arayın.
- addOnSuccessListenerkullanarak- LocationResponsedinleyebilen bir- OnSuccessListeneroluşturun.
- Sonucun geçerli olduğundan emin olmak için - getStatus()numaralı telefonu arayın.
- Mevcut - Location'ı iade etmek için- LocationResponse.getLocation()numaralı telefonu arayın.
Aşağıdaki örnekte, mevcut konumun nasıl alınacağı gösterilmektedir:
Awareness.getSnapshotClient(this).getLocation()
    .addOnSuccessListener(new OnSuccessListener<LocationResponse>() {
        @Override
        public void onSuccess(LocationResponse locationResponse) {
            Location loc = locationResponse.getLocationResult();
        }
    })