Java isProviderEnabled()从未被称为android
我正在编写代码以获取手机的当前位置(纬度和经度)。无论手机是否提供网络定位服务,我都会显示一个祝酒词。这个祝酒词从来没有出现过。另一个问题是,要使用Java isProviderEnabled()从未被称为android,java,android,networking,location,Java,Android,Networking,Location,我正在编写代码以获取手机的当前位置(纬度和经度)。无论手机是否提供网络定位服务,我都会显示一个祝酒词。这个祝酒词从来没有出现过。另一个问题是,要使用网络\u位置获取当前位置,应用程序是否会使用手机的gprs/互联网 我已经在主活动中创建了这个类的实例,然后使用这个类的纬度和经度变量获取数据,在另一个扩展了广播接收器的类中 public class GpsClass extends Activity{ public static String Latitude=""; public static
网络\u位置
获取当前位置,应用程序是否会使用手机的gprs/互联网
我已经在主活动中创建了这个类的实例,然后使用这个类的纬度和经度变量获取数据,在另一个扩展了广播接收器的类中
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();
}
}
我做错什么了吗
关于我认为问题在于您在duration中传递了0,即makeText()方法的最后一个参数。
尝试传递Toast.LENGTH\u SHORT
或Toast.LENGTH\u 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();
可以帮助您获得第一个问题的答案
第二个问题的答案是-不,该应用程序不会使用手机的gprs/互联网通过网络提供商获取位置信息 问题是将持续时间设置为0。
这是一个示例:
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
currentLocation = new GeoPoint(location.getLatitude(), location.getLongitude());
// Set Toast Here To Diplay location
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
};
if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
//10000 means request update every 10 sec
//10 tell listener that if location change more than 10m then run locationChanged method
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 10, locationListener);
} else {
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10000, 10, locationListener);
}
不,这和那没什么关系。我的应用程序中的所有其他吐司的持续时间也都为0,它们工作正常!好的,我在文档中看到了,发现值0表示Toast.LENGTH\u SHORT,值1表示Toast.LENGTH\u LONG。因此,将0作为第三个参数传递肯定不是问题。请尝试添加日志而不是Toast,并检查它是否出现。