isProviderEnabled()永远不会被称为android
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了isProviderEnabled()永远不会被称为android相关的知识,希望对你有一定的参考价值。
我正在编写用于获取手机当前位置(经度和纬度)的代码。我是否显示了手机是否提供网络位置服务。这种吐司并没有出现过。另一个问题是,为了使用Network_location
获取当前位置,应用程序是否会使用手机的gprs/internet
?
我在main活动中创建了这个类的实例,然后在另一个扩展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();
This可以帮助您回答第一个问题。
您的第二个问题的答案是 - 不,该应用程序将不会使用手机的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);
}
以上是关于isProviderEnabled()永远不会被称为android的主要内容,如果未能解决你的问题,请参考以下文章
GPS isProviderEnabled 总是返回 false
.isProviderEnabled(LocationManager.NETWORK_PROVIDER) 在 Android 中始终为真
当 gps 关闭时,.isProviderEnabled(LocationManager.NETWORK_PROVIDER) 总是返回 false?
locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER) 使用 Wi-Fi 总是返回 false
Android google maps v2 isproviderEnabled(LocationManager.NETWORK_PROVIDER,0,0,this) 总是返回 false