小编rgr*_*_mt的帖子

LocationManager:是否始终启用"网络"提供程序?

我想选择在Android中启用的LocationProvider.项目构建目标是Android 2.1.

这就是我在onCreate()中所做的.

// ...
LocationManager locationMgr = (LocationManager) 
getSystemService(Context.LOCATION_SERVICE);

Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.NO_REQUIREMENT);
criteria.setPowerRequirement(Criteria.NO_REQUIREMENT);
criteria.setCostAllowed(false);     

String bestProvider = locationMgr.getBestProvider(criteria, true);  

Toast.makeText(getApplicationContext(),   "Provider = " + bestProvider + " enabled= " + locationMgr.isProviderEnabled(bestProvider), Toast.LENGTH_LONG).show();
// ...
Run Code Online (Sandbox Code Playgroud)

现在,我关闭每个网络接口并在我的设备上设置飞行模式(HTC Desire,Android 2.2).我断开设备与USB的连接.显然没有提供者活着,他们实际上可以向设备提供位置数据.我特别要求getBestProvider用于启用的提供程序,所以我希望它在这种情况下返回null或空字符串.我希望isProviderEnabled返回false.

实际结果是getBestProvider返回"network"并且isProviderEnabled报告它"启用"."网络"总是"启用"即使不是吗?

android location

18
推荐指数
1
解决办法
2万
查看次数

Android Eclipse插件中super()调用的位置生成的代码是否可靠?

在许多Android方法中,尤其是构造函数和重写方法,您应该甚至必须使用super()调用父类方法.当您使用Eclipse Source> Override/Implement Methods ...时,您可以从包含TODO标签的模板中获取代码,如下所示:

public MyCanvas(Context context, AttributeSet attrs) {
    super(context, attrs);
    // TODO Auto-generated constructor stub
}


@Override
protected void onDraw(Canvas canvas) {
    // TODO Auto-generated method stub      
    super.onDraw(canvas);
} 
Run Code Online (Sandbox Code Playgroud)

我不太了解超类在每种情况下的作用,所以我总是在// TODO标签的确切位置插入我的代码.在这个例子中,我会在构造函数中的代码之前和onDraw()中的代码之后调用super().

我是否可以始终在生成的代码中依赖这些代码插入位置?调用super()时是否有简单的规则/解释?

eclipse android super adt

16
推荐指数
1
解决办法
2658
查看次数

标签 统计

android ×2

adt ×1

eclipse ×1

location ×1

super ×1