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.addOnSuccessListener
kullanarakDetectedActivityResponse
dinleyebilen birOnSuccessListener
oluşturun.- Sonucun geçerli olduğundan emin olmak için
getStatus()
numaralı telefonu arayın. ActivityRecognitionResult
ürününü iade etmek içinDetectedActivityResponse.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
öğesininActivityRecognitionResult
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ı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_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; }
BeaconState.TypeFilter
tanı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.addOnSuccessListener
kullanarakBeaconStateResponse
dinleyebilen birOnSuccessListener
oluş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 arayarakBeaconState.BeaconInfo
alı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.addOnSuccessListener
kullanarakHeadphoneStateResponse
dinleyebilen birOnSuccessListener
oluş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_IN
veyaUNPLUGGED
'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_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.addOnSuccessListener
kullanarakLocationResponse
dinleyebilen birOnSuccessListener
oluşturun.Sonucun geçerli olduğundan emin olmak için
getStatus()
numaralı telefonu arayın.Mevcut
Location
'ı iade etmek 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();
}
})