gpt4 book ai didi

java - 检测是否无网络获取地理坐标

转载 作者:行者123 更新时间:2023-12-02 06:00:47 24 4
gpt4 key购买 nike

我的应用程序严重依赖地理坐标,因此当用户发布一本书时,它会记录用户的地理坐标,如下所示:

PostBookButton.setOnClickListener(new View.OnClickListener() {


@Override
public void onClick(View v) {

locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
locationListener = new ObtainLocation();
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);

}
});

public class ObtainLocation implements LocationListener{
@Override
public void onLocationChanged(Location loc) {


if (loc != null)
{
Latitude = loc.getLatitude();
Longitude = loc.getLongitude();


ParseGeoPoint itemLoc = new ParseGeoPoint(Latitude,Longitude);

book.setGeoLocation(itemLoc);

book.saveInBackground(new SaveCallback()
{

@Override
public void done(ParseException e) {
if (e == null)
{
finish();
}
else
{

}
}
});
}
}
else
{

}

locationManager.removeUpdates(locationListener);
}

但问题是,如果 Activity 在没有网络连接的情况下运行,应用程序将崩溃,看看它如何无法获取地理点坐标。

如果应用程序无法获取坐标,我该如何做到这一点,而不是崩溃,也许会警告用户,由于无法获取当前位置,他们无法查看其所在区域的书籍。

最佳答案

更新:下面的解决方案是一般网络连接解决方​​案,不一定会告诉您是否可以通过评论中指出的 WiFi 获取位置更新。

您可以注册以使用 BroadcastReceiver 接收网络连接更新。注册以监听 android.net.conn.CONNECTIVITY_CHANGE 操作。看看this了解更多信息。下面是一个示例接收器。

public class ConnectivityReceiver extends WakefulBroadcastReceiver {
private static final String TAG = ConnectivityReceiver.class.getSimpleName();

@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected()) {
Log.d(TAG, "network state change; new state: connected");
} else {
Log.d(TAG, "network state change; new state: " + (cm.getActiveNetworkInfo() != null ? cm.getActiveNetworkInfo().getState() : " unknown"));
}
}

}

关于java - 检测是否无网络获取地理坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22693847/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com