私はグーグルマップでアプリをやっていますが、参照が機能しないと言うように、「私の場所」ボタンを追加しようとすると...
それが私がする方法です:
_protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
locManager = (LocationManager)getSystemService(LOCATION_SERVICE);
providersList = locManager.getAllProviders();
provider =locManager.getProvider(providersList.get(0));
precision = provider.getAccuracy();
req = new Criteria();
req.setAccuracy(Criteria.ACCURACY_FINE);
inside = false;
map.getUiSettings().setMyLocationButtonEnabled(true);
buildPolygon();
drawPolygon();
startLocalization();
}
_
Googleのリファレンスで示されているように、map.getUiSettings().setMyLocationButtonEnabled(true);
を使用しました。何が起こっているのか分かりません。
myLocationButtonEnabled
はデフォルトでtrueであり、setMyLocationEnabled
レイヤーが有効な場合に表示されます。
これを試して:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
// Add this line
map.setMyLocationEnabled(true);
locManager = (LocationManager)getSystemService(LOCATION_SERVICE);
providersList = locManager.getAllProviders();
provider =locManager.getProvider(providersList.get(0));
precision = provider.getAccuracy();
req = new Criteria();
req.setAccuracy(Criteria.ACCURACY_FINE);
inside = false;
//map.getUiSettings().setMyLocationButtonEnabled(true);
buildPolygon();
drawPolygon();
startLocalization();
}
マップを作成した後にmap.setMyLocationEnabled(true);
を追加するだけです
map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
このように
map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
map.setMyLocationEnabled(true);
私にとっては、map.setMyLocationEnabled(true);
マシュマロ以下のデバイスとマシュマロ以上のデバイスで正常に機能したため、アプリ内設定を手動でロケーション許可を与えました。その後、現在地ボタンが表示されました。
上記の答えは機能しませんでした。
override fun onMapReady(googleMap: GoogleMap?) {
this.googleMap = googleMap
setupMap()
}
private fun setupMap() {
if (ActivityCompat.checkSelfPermission(context!!,
Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
// Before enabling the My Location layer, you must request location permission from the user.
googleMap?.isMyLocationEnabled = true
// *** Use this method ***
googleMap?.uiSettings?.isMyLocationButtonEnabled = true
// See https://developers.google.com/maps/documentation/Android-sdk/location
googleMap?.setOnMyLocationButtonClickListener(this)
googleMap?.setOnMyLocationClickListener(this)
} else {
// Show rationale and request permission.
requestPermissions(arrayOf(Manifest.permission.ACCESS_FINE_LOCATION),
LOCATION_REQUEST_CODE)
}
}