延长电池续航时间--定位

Android提供了多种位置服务:

(1)GPS(使用卫星的全球定位系统);

(2)网络(用Cell-ID来进行基站定位,WI-FI服务地址)

(3)被动(API等级8加入)

在没有特别要求下,可以设置更新的频率,减少请求次数。注册监听器,在不用时,禁止位置监听

//接受位置更新

private void requestLocationUpdates() {
		LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
		List<String> provider = lm.getAllProviders();
		if (provider != null && !provider.isEmpty()) {
			LocationListener listener = new LocationListener() {

				@Override
				public void onStatusChanged(String provider, int status,
						Bundle extras) {
					// TODO Auto-generated method stub

				}

				@Override
				public void onProviderEnabled(String provider) {
					// TODO Auto-generated method stub

				}

				@Override
				public void onProviderDisabled(String provider) {
					// TODO Auto-generated method stub

				}

				@Override
				public void onLocationChanged(Location location) {
					// TODO Auto-generated method stub

				}
			};
			for (String name : provider) {
				lm.requestLocationUpdates(name, DateUtils.HOUR_IN_MILLIS * 1,
						100, listener);// 设置更新的频率
			}
		}
	}

	// 注销监听器(用户可以强制固定某个位置),在需要调用的地方调用
	private void disableLocationListener(LocationListener listener) {
		LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
		lm.removeUpdates(listener);
	}

	//最后已知位置(不需要启动定位服务)
	private Location getLastKnownLocation(){
		LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
		List<String> names = lm.getAllProviders();
		Location location=null;
		if(names!=null){
			for(String name:names){
				if(!LocationManager.PASSIVE_PROVIDER.equals(name)){
					Location l=lm.getLastKnownLocation(name);
					if((l!=null)&&(location==null|| l.getTime()>location.getTime())){
						location=l;
					}
				}
			}
		}
		return location;
	}
时间: 2024-11-09 13:34:24

延长电池续航时间--定位的相关文章

Android App优化之延长电池续航时间

禁用广播接收器 确保广播接收器在真正需要时才执行指令,在onResume中其中广播接收器,在onPause中禁用, 在manifest文件中声明广播接收器时,事先默认配置成禁用的 <receiver android:name=".BatterReceiver" android:enabled="false"> 网络 1. 后台数据,后台传输数据时,判断ConnectivityManager的getBackgroundDataSetting()的返回值,如

延长电池续航时间--网络数据的影响

Android设备通常的多个数据连接: (1)Bluetooth (2)Ethernet (3)WI-FI (4)WiMax (5)移动网络(EDGE,UMTS,LTE) 获取网络信息: public class NetInfo extends Activity { private TextView netInfoShow,netInfoShows; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Au

延长电池续航时间--传感器,WakeLock

一. 传感器 传感器使用方式和定位服务类似:应用向特定的传感器注册监听器,获得更新通知. private void registerWithAccelerometer(){ SensorManager sm=(SensorManager) getSystemService(Context.SENSOR_SERVICE); List<Sensor> sensors=sm.getSensorList(Sensor.TYPE_ACCELEROMETER); if(sensors!=null&

Android最佳实践之性能 - 电池续航时间优化

Doze和App Standby的优化(API23) 参考地址:http://developer.android.com/training/monitoring-device-state/doze-standby.html 从Android 6.0 (API level 23)开始,Android提供了两个节电功能用来增加电池的续航时间.Doze 可以在设备长时间不使用时,通过延迟后台CPU和网络的活动来减少电池的消耗:App Standby将延迟没有交互的app网络活动. Doze和App S

电池更换计划中获利?苹果面临电池质押投诉

苹果被指责发现iPhone不必要的故障,从而从电池更换计划中获利.当美国公司宣布去年12月为了"延长电池续航时间"而放缓iPhone手机时,为了不早点告诉别人而道歉.面对消费者的强烈反应,它承诺iPhone6的所有者和更现代的型号可以享受折扣或免费更换电池. "只有因为你的信仰和支持,我们才能完成我们所热爱的工作-而且我们永远不会忘记或认为理所当然."但自那时以来,一些看门狗观众告诉该计划,他们对公司的信心在试图让苹果公司接受其报价后严重动摇. 苹果要求一些客户支付

安卓性能优化手册

本手册适合至少有初级经验的开发者查阅或复习相关知识使用,新手可能会看不懂. 1.java代码优化 1.1安卓如何执行代码 dvm:.java->.class->.dex->.apk 优化斐波那契数列: 斐波那契数列的递推公式是f(n)=f(n-1)+f(n-2),特征方程为:x2=x+1,解该方程得(1+sqrt(5))/2,(1-sqrt(5))/2.所以f(n)=Ax1n+Bx2n,带入f(0)=0,f(1)=1得A=sqrt(5)/5,B=-sqrt(5)/5.则f(n)求出. B

从Note 5看三星大招 究竟能不能秒杀iPhone

从当年HTC发布第一代Android手机G1开始,无数Android旗舰机型都被冠以"iPhone"杀手的名号.可惜直到现在,iPhone活得愈发滋润,竞争对手却一个个沉沦下去.HTC M系列成为人人口诛笔伐的对象.索尼Z系列外形如出一辙.摩托罗拉 X系列已归降于联想.国产手机更是与iPhone比肩的资格都没有--似乎,只有三星Galaxy系列的高端机型还在死撑. 虽然依然是被iPhone打得灰头土脸,销量.人气也越来越低,但三星Galaxy系列高端机型却依然是最有可能与iPhone对

Android 5.1将于下月发布,将改善续航功能

谷歌计划3月份在更大范围内发布Android 5.1.莫弗斯在回答用户有关One M7 Google Play版智能手机的问题时表示,"这与谷歌计划在3月份发布的下一个MR(维护版本)有关",表明他已经获悉谷歌在更大范围内发布Android升级版的时间. Android 5.1将改进"OK Google"命令,以及Lollipop的通知功能,延长电池续航时间,但谷歌尚未公开讨论Android 5.1或其改进之处.另据PCWorld报道称,运行Android 5.1的

我们对只能手机的10个误区

一说到移动电池,是神秘?还是让你绝望?为了能够让我们手中的手机使用更长时间,用户尝试了很多稀奇古怪的方法来提升电池续航时间.不过,我们听到的可能都不全是真实的,以下就是我们对手机电池存在的10大误区: a4d2fffec1945c1.jpg_600x600.jpg (31.15 KB, 下载次数: 0) 下载附件 保存到相册 我们对智能手机电池存在的10大误区 5 天前 上传 1.电池有"记忆" 人们常常会想着,我们必须来"训练"手机电池来确保它能够充到尽可能多的电