转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! WIFI、传感器 Wifi简介 Wifi(Wireless Fidelity,无线相容性认证)是IEEE802.11b的别称,是由一个名为无线以太网兼容性联盟的组织所发布的业界术语。它是一种短程无线传输协议技术,其最大优点就是传输速度较高,可以达到11Mbit/s,另外它的有效距离也很长。 开启wifi //wifi管理器
WifiManager wm = (WifiManager)getSystemService(Context.WIFI_SERVICE);
if(!wm.isWifiEnabled()){
wm.setWifiEnabled(true);
}
关闭wifi WifiManager wm = (WifiManager)getSystemService(Context.WIFI_SERVICE);
if(wm.isWifiEnabled()){
wm.setWifiEnabled(false);
}
扫描wifi //注册广播
IntentFilter filter = new IntentFilter();
filter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
registerReceiver(new MyReceiver(), filter);
wm = (WifiManager) getSystemService(Context.WIFI_SERVICE);
if(!wm.isWifiEnabled()){
wm.setWifiEnabled(true);
}
//开始扫描(扫描到一个无线信号,就会发出一个广播)
wm.startScan();
}
private class MyReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context,Intent intent) {
//TODO Auto-generated method stub
Stringaction = intent.getAction();
if(action.equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)){
List<ScanResult> scanResults =wm.getScanResults();
}
}
}
Wifi所需权限 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> 传感器 传感器是一种物理装置或生物器官,能够探测、感受外界的信号、物理条件(如光、热、湿度)或化学组成(如烟雾),并将探知的信息传递给其他装置或器官。传感器是一种检测装置,能感受被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出。 传感器类型 1.方向传感器:指南针 2.加速度传感器:赛车游戏 3.光线传感器:智能手电筒 4.磁场传感器:罗盘 5.距离传感器:打电话的时候,靠近耳朵灭屏,方式误操作 6.温度传感器:体温计 步骤 1.得到SensorManager 2.得到Sensor 3.监听sensor的变化 4.获得数据 代码 public class Test_2_15_sensorActivity extends Activity {
private ImageView imageView;
private SensorEventListener sensorEventListener;
private SensorManager sensorManager;
private Sensor sensor;
// 初始化角度
float currentDegree = 0f;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imageView = (ImageView)findViewById(R.id.iv_content);
// 感应器使用时要屏幕常亮
imageView.setKeepScreenOn(true);
// 得到感应器
sensorManager =
(SensorManager) getSystemService(Context.SENSOR_SERVICE);
//获取方向传感器
sensor=sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
//传感器事件监听
sensorEventListener = new MySensorEventListener();
//绑定事件监听,游戏延迟,一般绝大多数的实时性较高的游戏都使用该级别
sensorManager.registerListener(sensorEventListener, sensor, SensorManager.SENSOR_DELAY_GAME);
}
private class MySensorEventListener implements SensorEventListener{
@Override
public voidonSensorChanged(SensorEvent event) {
// TODO Auto-generated methodstub
//获取角度数据
float degree = event.values[0];
//以指南针图像中心为轴逆时针旋转degree度
RotateAnimation rotateAnimation= new RotateAnimation(
currentDegree, //起始角度
-degree,//旋转角度
Animation.RELATIVE_TO_SELF, //动画在X轴的参照物,这里是自身
0.5f,//动画在参照物X坐标的开始位置
Animation.RELATIVE_TO_SELF, //动画在Y轴参照物
0.5f);//动画在参照物y坐标的开始位置
//在200毫秒之内完成旋转动作
rotateAnimation.setDuration(200);
imageView.startAnimation(rotateAnimation);
//保存旋转后的度数
currentDegree = -degree;
}
// 精确度的改变
@Override
public void onAccuracyChanged(Sensorsensor, int accuracy) {
// TODO Auto-generated methodstub
}
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
//取消感应器
sensorManager.unregisterListener(sensorEventListener);
}
}
课后问题 1.如果使用wifi应该使用什么类? WifiManager 2.Sensor是什么? 方向感应器 3.Sensor使用的步骤1 2 3 4 得到感应器管理器 得到感应器 监听感应器 得到数据 |