android isproviderenabled函数详解,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);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值