Настройка деталей моего вложения через приборную панель Beacon. Я продолжаю получать: getBeaconState("FILTER")
ноль . Моя цель - просто определить, когда маяк рядом. Любая форма, которая помогла бы мне, была бы великолепна!
Я уже настроил свой виртуальный маяк в соответствии с форматом eddystone, и он отлично работает (на приборной панели маяка я вижу: маяк активен и работает правильно!)настройте мой проект на консоли Google и добавьте те же ключи API в Advertiser и это приложение (сканер).
public class MainActivity extends AppCompatActivity {
public static final int MY_PERMISSIONS_REQUEST_LOCATION = 99;
public static final String TAG = MainActivity.class.getSimpleName();
List<BeaconState.TypeFilter> BEACON_TYPE_FILTERS = Arrays.asList(BeaconState.TypeFilter
.with("alpine-shade-255114", "int"));
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
hasLocationPermission();
addBeaconDetectorFence();
}
private void hasLocationPermission() {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, MY_PERMISSIONS_REQUEST_LOCATION);
return;
}
}
@RequiresApi(api = Build.VERSION_CODES.M)
private void addBeaconDetectorFence() {
if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, MY_PERMISSIONS_REQUEST_LOCATION);
return;
}
Awareness.getSnapshotClient(this).getBeaconState(BEACON_TYPE_FILTERS)
.addOnSuccessListener(beaconResult -> {
Log.e(TAG, "Got beacon state");
if(beaconResult!=null){
BeaconState beaconState = beaconResult.getBeaconState();
Toast.makeText(MainActivity.this, "Got beacon state! " + beaconState,
Toast.LENGTH_SHORT).show();}
})
.addOnFailureListener(e -> {
Log.e(TAG, "Could not get beacon state");
Toast.makeText(MainActivity.this, "Could not get beacon state!",
Toast.LENGTH_SHORT).show();
});
}
}
Итак, когда я отлаживаю, он вводит addOnSuccessListener
, но beaconState
всегда нуль .