标签:
通过硬件的物理特性获取压力,重力,光感应,加速度等信息。主要应用于摇一摇等手机应用上面。
在android2.3 gingerbread系统中,google提供了传感器供应用层使用
代码说明:
/* 实现SensorEventListener,重写2个方法 */
public class MainActivity extends AppCompatActivity implements SensorEventListener {
private ImageView mSensorImageView;
private Sensor mSensor;
private SensorManager mSensorManager;
private float mStartDegree = 0f;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSensorImageView = (ImageView) findViewById(R.id.sensor_imageView);
/* 获取SensorManager对象 */
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
/* 获取Sensor对象,参数决定是哪一种类型的传感器*/
mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
}
/* onResume方法里注册Sensor对象 */
@Override
protected void onResume() {
super.onResume();
mSensorManager.registerListener(this,mSensor,SensorManager.SENSOR_DELAY_UI);
}
/* onPause方法里注销Sensor对象 */
@Override
protected void onPause() {
super.onPause();
mSensorManager.unregisterListener(this);
}
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ORIENTATION){
float degree = - event.values[0];
RotateAnimation rotateAnimation = new RotateAnimation( mStartDegree,degree,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,
0.5f);
rotateAnimation.setDuration(300);
mSensorImageView.startAnimation(rotateAnimation);
mStartDegree = degree;
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}
1、并不是说有的手机都具有所有上述传感器
大部分手持设备和桌面设备都具有加速度和磁力感应器,但是带气压和温度计的设计就少得多了。而且,在一台设备上某类感应器的数量也可以有多个。比如一台设备可以带有两个重力感应器,每个感应器的量程各不相同。
2、不同的系统版本引入的传感器是不同的
方法一:
if (mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION)!= null){
//success
}else{//传感器不存在}
方法二:
在Android市场过滤器来限定目标设备必须带有指定的传感器配置(如果手机没有传感器,则不能下载安装该app)
if{//success!There‘s a xxx sensor}
else
{//xxx传感器不存在}
<uses-feature
android:name="android:hardware.sensor.accelerometer"
android:required="true"/>
1、什么是LBS定位
LBS是基于位置服务的应用,常见的有微信附近的人,我的位置,分享我的位置等;外卖应用,根据当前位置发现附近的餐厅等。
2、主要应用场景
3、地图的使用
Android原生使用的是Google Map,所以系统会提供基于Google Map提供的地图服务,但是有很多的限制。
4.API对比
A. Google map
B.百度地图和高德地图
5、接入百度地图SDK
a. 在百度地图开放平台(百度地图开放平台http://lbsyun.baidu.com/index.php?title=androidsdk);
b. 申请秘钥
c. 根据说明集成代码
标签:
原文地址:http://blog.csdn.net/cqupt2011214692/article/details/51344326