Bu bölümde, desteklenen bağlam türlerinin her biri için geçerli durumu almak amacıyla Snapshot API'nin nasıl kullanılacağı gösterilmektedir. Daha fazla bilgi için Başlayın 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:
Geçerli etkinliği al
Kullanıcının geçerli etkinliğini öğrenmek için kullanıcının son etkinlikleri hakkında bilgi içeren ActivityRecognitionResult
değerini döndüren getDetectedActivity()
işlevini çağırın.
getDetectedActivity()
yöntemi için com.google.android.gms.permission.ACTIVITY_RECOGNITION
izni gerekir. Bu izni AndroidManifest.xml
öğesine ekleyin.
Kullanıcının mevcut etkinliğini almak için aşağıdaki adımları uygulayın:
SnapshotClient
örneğini oluşturmak içingetSnapshotClient()
yöntemini çağırın.DetectedActivityResponse
ifadesini dinleyen birOnSuccessListener
oluşturmak içinaddOnSuccessListener
kullanın.- Sonucun geçerli olduğundan emin olmak için
getStatus()
numaralı telefonu arayın. Bir
ActivityRecognitionResult
döndürmek içinDetectedActivityResponse.getActivityRecognitionResult()
numaralı telefonu arayın. Bunu kullanıcının mevcut etkinliğinin birçok farklı özelliğinden yararlanmak için kullanabilirsiniz. Örneğin:- Yalnızca mümkün olan en yüksek etkinliği almak için
getMostProbableActivity()
numaralı telefonu arayın. - Son etkinliklerin olasılığa göre sıralanmış listesini almak için
getProbableActivities()
numaralı telefonu arayın. - Belirli bir etkinlik türü için güven değerini döndürmek amacıyla
getActivityConfidence()
yöntemini çağırın. - Bir
Intent
'ninActivityRecognitionResult
içerip içermediğini tespit etmek içinhasResult()
numaralı telefonu arayın.
- Yalnızca mümkün olan en yüksek etkinliği almak için
Aşağıdaki kod örneği, tespit edilen en olası etkinliği almak ve sonucu konsola kaydetmek için getMostProbableActivity()
'i kullanır:
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 işaretçileri alın
Yakındaki işaretçiler hakkında bilgi edinmek için getBeaconState()
numaralı telefonu arayın.
İşaretçi verileri, tüm 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
hesabına ekleyin.
Ayrıca, Google Developers Console projeniz için Nearby Messages API'yi etkinleştirmeniz gerekir. Daha fazla bilgi için Kayıt ve API Anahtarları ve Başlayın bölümlerine bakın.
Yakındaki işaretçiler hakkında bilgi almak için aşağıdaki adımları uygulayın:
Kullanıcının gerekli izinleri verip vermediğini kontrol edin. Aşağıdaki örnek,
android.permission.ACCESS_FINE_LOCATION
izninin verilip verilmediğini kontrol eder. Açık değilse 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; }
Bir
BeaconState.TypeFilter
tanımlayın. Bu işlem yalnızca belirtilen ad alanı ve türle kaydedilmiş eklere sahip işaretçileri döndürür. Ayrıca, ek içeriğindeki baytlar arası eşlemeye göre filtreleme de yapabilirsiniz. Aşağıdaki örnekte bir tür filtresinin nasıl oluşturulacağı gösterilmektedir:private static final List
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.BeaconStateResponse
ifadesini dinleyen birOnSuccessListener
oluşturmak içinaddOnSuccessListener
kullanın.Sonucun geçerli olduğundan emin olmak için
getStatus()
numaralı telefonu arayın.İşaretçi durumunu döndürmek için
BeaconStateResponse.getBeaconState()
numaralı telefonu arayın.BeaconState.BeaconInfo
almak içinBeaconState.getBeaconInfo()
numaralı telefonu arayın.
Aşağıdaki örnekte, işaretçi 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 öğrenme
Kulaklığın cihaza takılı olup olmadığını algılamak için getHeadphoneState()
işlevini çağırın. Bu durumda HeadphoneStateResponse
algılama durumu, algılanacak şekilde OnSuccessListener
olarak ayarlanır.
Ardından HeadphoneState
değerini almak için getHeadphoneState()
numaralı telefonu arayabilirsiniz.
Mevcut kulaklık durumunu almak için aşağıdaki adımları uygulayın:
getSnapshotClient.getHeadphoneState()
numaralı telefonu arayın.HeadphoneStateResponse
ifadesini dinleyen birOnSuccessListener
oluşturmak içinaddOnSuccessListener
kullanın.- 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()
numaralı telefonu arayın. Bu değerPLUGGED_IN
veyaUNPLUGGED
olur.
Aşağıdaki kod örneğinde getHeadphoneState()
'in 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
LocationResponse
değerini döndüren getLocation()
çağrısıyla kullanıcının geçerli konumunu (enlem-boylam) alabilirsiniz.
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
hesabına ekleyin.
Geçerli 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 örnek,
android.permission.ACCESS_FINE_LOCATION
izninin verilip verilmediğini kontrol eder. Açık değilse 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.LocationResponse
ifadesini dinleyen birOnSuccessListener
oluşturmak içinaddOnSuccessListener
kullanın.Sonucun geçerli olduğundan emin olmak için
getStatus()
numaralı telefonu arayın.Mevcut
Location
değerini döndürmek içinLocationResponse.getLocation()
numaralı telefonu arayın.
Aşağıdaki örnekte geçerli 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();
}
})