我正在编写用于获取手机当前位置(纬度和经度)的代码。无论电话是否提供网络位置服务,我都会 toast 。这个 toast 永远不会出现。另一个问题是,为了使用 Network_location
获取当前位置,应用程序是否会使用手机的 gprs/internet
?
我在主要 Activity 中创建了此类的实例,然后在扩展 broadcast reciever
的另一个类中使用此类的 Latitude 和 Longitude 变量获取数据。
public class GpsClass extends Activity{
public static String Latitude="";
public static String Longitude="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener listener = new LocationListener() { // anonymous class
@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String arg0) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String arg0) {
// TODO Auto-generated method stub
}
@Override
public void onLocationChanged(Location currentLocation) {
double lat= currentLocation.getLatitude();
Latitude = Double.toString(lat);
double longt= currentLocation.getLongitude();
Longitude = Double.toString(longt);
}
};
manager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, listener);
if(manager.isProviderEnabled(LocationManager.NETWORK_PROVIDER))
{
Toast.makeText(getApplicationContext(), "Network enabled", 0).show();
}
else
Toast.makeText(getApplicationContext(), "Network not enabled", 0).show();
}
}
我做错了什么吗?
问候
最佳答案
我认为问题在于您在持续时间内传递了 0,即 makeText() 方法的最后一个参数。
尝试传递 Toast.LENGTH_SHORT
或 Toast.LENGTH_LONG
。
if(manager.isProviderEnabled(LocationManager.NETWORK_PROVIDER))
{
Toast.makeText(getApplicationContext(), "Network enabled", Toast.LENGTH_LONG).show();
}
else
Toast.makeText(getApplicationContext(), "Network not enabled", Toast.LENGTH_LONG).show();
关于java - isProviderEnabled() 永远不会被调用 android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17175014/