Bu bölümde, desteklenen her bağlam türünün mevcut durumunu almak için Snapshot API'nin nasıl kullanılacağı gösterilmektedir. Daha fazla bilgi için Başlayın başlıklı makaleyi inceleyin. Desteği sonlandırılan içerik sinyalleri hakkında ayrıntılı bilgi 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 etkinlikleri hakkında bilgi 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
'e ekleyin.
Kullanıcının mevcut etkinliğini almak için aşağıdaki adımları uygulayın:
SnapshotClient
örneği oluşturmak içingetSnapshotClient()
'i arayın.DetectedActivityResponse
dinleyebilecek birOnSuccessListener
oluşturmak içinaddOnSuccessListener
kullanın.- Sonuçların geçerli olduğundan emin olmak için
getStatus()
numaralı telefonu arayın. ActivityRecognitionResult
iade etmek içinDetectedActivityResponse.getActivityRecognitionResult()
numaralı telefonu arayın. Bu özelliği kullanarak kullanıcının mevcut etkinliğinin birçok yönünü öğrenebilirsiniz. Örneğin:- Yalnızca en olası etkinliği almak için
getMostProbableActivity()
işlevini çağırın. - Olasılığa göre sıralanmış son etkinliklerin listesini almak için
getProbableActivities()
düğmesine basın. - Belirli bir etkinlik türü için güven değerini döndürmek üzere
getActivityConfidence()
işlevini çağırın. - Bir
Intent
'ınActivityRecognitionResult
iç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ı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 alma
Yakındaki işaretçi hakkında bilgi edinmek için getBeaconState()
numaralı telefonu arayın.
İşaretçi verileri, eklerin içeriğinden, türünden 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 Yakındaki Mesajlar API'sini etkinleştirmeniz gerekir. Daha fazla bilgi için Kayıt ve API Anahtarları ile Başlayın 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_LOCATION
izninin 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; }
Bir
BeaconState.TypeFilter
tanımlayın. Bu işlev yalnızca belirtilen ad alanını ve türünü kullanarak kaydedilen ek içeren işaretçileri döndürür. Ayrıca, ek içeriğindeki bayttan bayta 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.BeaconStateResponse
dinleyebilecek birOnSuccessListener
oluşturmak içinaddOnSuccessListener
kullanın.Sonuçların geçerli olduğundan emin olmak için
getStatus()
numaralı telefonu arayın.İşaretçi durumunu döndürmek için
BeaconStateResponse.getBeaconState()
işlevini çağırı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 alma
Kulaklığın cihaza takılı olup olmadığını algılamak için getHeadphoneState()
işlevini çağırın. Bu işlev, OnSuccessListener
algıla olarak ayarlanmış bir HeadphoneStateResponse
algılama durumu oluşturur.
Ardından HeadphoneState
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
dinleyebilecek birOnSuccessListener
oluşturmak içinaddOnSuccessListener
kullanın.- Sonuçların geçerli olduğundan emin olmak için
getStatus()
numaralı telefonu arayın. - Başarılı olduğunda, kulaklık durumunu döndürmek için
HeadphoneStateResponse.getHeadphoneState()
işlevini çağırın. Bu değerPLUGGED_IN
veyaUNPLUGGED
'tır.
Aşağıdaki kod örneğinde, getHeadphoneState()
işlevinin 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()
çağrısı yaparak kullanıcının mevcut konumunu (enlem-boylam) alabilirsiniz. Bu çağrı, 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
'a 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_LOCATION
izninin 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.LocationResponse
dinleyebilecek birOnSuccessListener
oluşturmak içinaddOnSuccessListener
kullanın.Sonuçların geçerli olduğundan emin olmak için
getStatus()
numaralı telefonu arayın.Mevcut
Location
'i döndürmek içinLocationResponse.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();
}
})