私はデバイスの場所を取得する必要があるアプリを構築していました。使用したコードはこちらです
Double latitude = 0.0;
Double longitude = 0.0;
String TAG = "HomeActivity";
Location gpsLoc = null, networkLoc = null, finallLoc = null;
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if(ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED &&
ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &&
ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_NETWORK_STATE) != PackageManager.PERMISSION_GRANTED){
Toast.makeText(this,"Not Granted",Toast.LENGTH_LONG).show();
}else{
Toast.makeText(this,"Granted",Toast.LENGTH_LONG).show();
}
try{
gpsLoc = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
networkLoc = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}catch(Exception e){
e.printStackTrace();
}
if(gpsLoc!= null){
finallLoc = gpsLoc;
latitude = finallLoc.getLatitude();
longitude = finallLoc.getLongitude();
}else if(networkLoc!=null){
finallLoc = networkLoc;
latitude = finallLoc.getLatitude();
longitude = finallLoc.getLongitude();
}else{
latitude = 0.0;
longitude=0.0;
}
try{
Geocoder geocoder = new Geocoder(getApplicationContext(),Locale.getDefault());
List<Address> addresses = geocoder.getFromLocation(latitude,longitude,1);
if(addresses!=null && addresses.size()>0){
String country = addresses.get(0).getCountryName();
String address = addresses.get(0).getAddressLine(0);
String city = addresses.get(0).getLocality();
}
}catch (Exception e){
e.printStackTrace();
}
このアプリをデプロイする準備がほぼ整ったので、このコードを使用して位置を正しく取得できるかどうかを確認したいと思いましたか?そうでない場合は、どのような改善を行う必要がありますか? コードは正常に動作します。不足しているものがあるかどうか、または特定の条件下でエラーにつながる可能性があるかどうかを知りたいだけです。