の値を削除します。 私はコードをデバッグすると私は場所を取得した後ことがわかり - アンドロイドスタジオが主な活動私はGPS /ネットワークの場所を取得した後、アンドロイドは位置の値を削除しようとしている
に値を返していない私は、コードには例外がないことがわかります。
メソッド 'getCurrentLocation'は、場所を返します。 私が見(右場所は、デバッグビューアにaccourding)GPS /ネットワークから位置を取得した後、そのこと 変数だけでも、ライン
'if (!isGpsEnable && !isNetworkEnable) {'
と「場所」にはnullを返すようにコード'location'変数には適切なgpsの場所が含まれます。
コード:
public class TraceLocation implements LocationListener
{
public Location getCurrentLocation(Context context)
{
Location location = null;
try {
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
Boolean isGpsEnable = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
Boolean isNetworkEnable = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (!isGpsEnable && !isNetworkEnable) {
// TODO !!! => no gps and no network !!!
} else if (context.checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
if (isNetworkEnable) {
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 60000, 10, this);
if (locationManager != null) {
location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
}
if (isGpsEnable) {
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 10, this);
if (locationManager != null) {
location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
}
}
}
}
catch(Exception e)
{
}
return location;
}
質問:
私はときにメソッド結果にnullを取得しますなぜ私はアンドロイド6.0(マシュマロ)
を使用してデバッグの戻り値がnullでないことがわかっても戻ってきます
iは
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER、60000、10、これを)除去します。
と
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 10, this);
私も取得し、デバッグ上の場所はありません - なぜ?????
あなたの質問は何ですか? :) あなたは何をしようとしているのですか?ちょっと助けが必要なのは何ですか?具体的にしてください。 :) – Imdad