wifi开启的一个例子

来源:互联网 发布:美工证书 编辑:程序博客网 时间:2024/05/17 21:50

WIFI开启的一个例子,下面是给出的主要代码

1  //定义wifiManager,主要是涉及和wifi配置和管理相关的类

  WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);

2wifi.startScan();//开始wifi信号的扫描

3List<ScanResult> resultList = wifi.getScanResults();//得到扫描的结果

ScanResult用于保存扫描可用的wifi的信息

4//网络连接列表,这个是得到配置好的wifi连接

                ListIterator<WifiConfiguration> configs = wifi.getConfiguredNetworks().listIterator();

Sensor

Sensor的类型:

            put(R.id.sensor_accel, SensorManager.SENSOR_ACCELEROMETER);//加速度传感器

            put(R.id.sensor_light, SensorManager.SENSOR_LIGHT);//光传感器

            put(R.id.sensor_mag, SensorManager.SENSOR_MAGNETIC_FIELD);//重力感应传感器

            put(R.id.sensor_orient, SensorManager.SENSOR_ORIENTATION);//方向感应传感器

            put(R.id.sensor_prox, SensorManager.SENSOR_PROXIMITY);//临近性传感器

            put(R.id.sensor_temp, SensorManager.SENSOR_TEMPERATURE);//温度传感器SensorListener接口,有两个方法:

abstract void onAccuracyChanged(int sensor, int accuracy)

当传感器的精确数值发生改变时调用。

abstract void onSensorChanged(int sensor, float[] values):当传感器的值发生改变时调用

如何实现sensor编程:

1//获得SensorManager对象

        SensorManager sensors = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
     2.通过SensorManager对象获取Sensor对象,
           sensorObject = sensormanager.getDefaultSensor(sensor Type);
     3.
实现SensorListener接口或者是申明一个SensorEventListener对象用于侦听Sensor事件,并实现或重载onSensorChanged方法
            SensorEventListenersensorListener = new SensorEventListener(){
             };

或:onSensorChanged(int sensor, float[] values) {
     4.
注册相应的SensorService
             sensormanager.registerListener(sensorListener, sensorObject, Sensor TYPE);

sensorObject就是上面的六种类型
    5.销毁相应的SensorService
            sensormanager.unregisterListener(sensorListener, sensorObject);
 
    6: SensorListener
接口是传感器应用程序的中心。它包括两个必需方法:
          onSensorChanged(int sensor,float values[])方法在传感器值更改时调用。

Battery

package com.androidbook.hardware;

 

import java.util.HashMap;

import java.util.Map;

 

import android.app.Activity;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.content.IntentFilter;

import android.os.BatteryManager;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.ImageView;

import android.widget.TextView;

import android.widget.Toast;

 

public class Battery extends Activity {

 

    private BroadcastReceiver batteryRcv = null;

 

    private static final Map<Integer, String> healthValueMap = new HashMap<Integer, String>() {

        {

            put(BatteryManager.BATTERY_HEALTH_DEAD, "Dead");

            put(BatteryManager.BATTERY_HEALTH_GOOD, "Good");

            put(BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE, "Over voltage");

            put(BatteryManager.BATTERY_HEALTH_OVERHEAT, "Over heating");

            put(BatteryManager.BATTERY_HEALTH_UNKNOWN, "Unknown");

            put(BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE, "Failure, but unknown");

            put(-1, "Not Reported");

        }

    };

 

    private static final Map<Integer, String> statusValueMap = new HashMap<Integer, String>() {

        {

            put(BatteryManager.BATTERY_STATUS_CHARGING, "Charging");

            put(BatteryManager.BATTERY_STATUS_DISCHARGING, "Discharging");

            put(BatteryManager.BATTERY_STATUS_FULL, "Full");

            put(BatteryManager.BATTERY_STATUS_NOT_CHARGING, "Not Charging");

            put(BatteryManager.BATTERY_STATUS_UNKNOWN, "Unknown");

            put(-1, "Not Reported");

        }

    };

 

    private static final Map<Integer, String> pluggedValueMap = new HashMap<Integer, String>() {

        {

            put(BatteryManager.BATTERY_PLUGGED_AC, "On AC");

            put(BatteryManager.BATTERY_PLUGGED_USB, "On USB");

            put(-1, "Not Reported");

        }

    };

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

 

        setContentView(R.layout.battery);

        final ImageView icon = (ImageView) findViewById(R.id.icon);

        final Button start = (Button) findViewById(R.id.start);

        final Button stop = (Button) findViewById(R.id.stop);

        final TextView status = (TextView) findViewById(R.id.status);

 

        batteryRcv = new BroadcastReceiver() {

 

            @Override

            public void onReceive(Context context, Intent intent) {

                int level = intent.getIntExtra("level", -1);

                int maxValue = intent.getIntExtra("scale", -1);

                int batteryStatus = intent.getIntExtra("status", -1);

                int batteryHealth = intent.getIntExtra("health", -1);

                int batteryPlugged = intent.getIntExtra("plugged", -1);

                String batteryTech = intent.getStringExtra("technology");

                int batteryIcon = intent.getIntExtra("icon-small", -1);

                float batteryVoltage = (float) intent.getIntExtra("voltage", -1) / 1000;

                boolean battery = intent.getBooleanExtra("present", false);

                float batteryTemp = (float) intent.getIntExtra("temperature", -1) / 10;

 

                /* used to determine keys and types

                 * Bundle extras = intent.getExtras(); Set<String> keys =

                 * extras.keySet(); Iterator<String> allKeys = keys.iterator();

                 * while (allKeys.hasNext()) { String key = allKeys.next();

                 * Log.v("Battery", key); }

                 */

 

                int chargedPct = (level * 100) / maxValue;

 

                String batteryInfo = "Battery Info:\nHealth=" + healthValueMap.get(batteryHealth) + "\n" + "Status=" + statusValueMap.get(batteryStatus) + "\n" + "Charged % = "

                        + chargedPct + "%\n" + "Plugged = " + pluggedValueMap.get(batteryPlugged) + "\n" + "Type = " + batteryTech + "\n" + "Voltage = " + batteryVoltage

                        + " volts\n" + "Temperature = " + batteryTemp + "\n" + "Battery present = " + battery + "\n";

 

                status.setText(batteryInfo);

                icon.setImageResource(batteryIcon);

 

                Toast.makeText(Battery.this, "Battery state changed", Toast.LENGTH_LONG).show();

 

            }

 

        };

 

        start.setOnClickListener(new View.OnClickListener() {

 

            public void onClick(View v) {

 

               //注册广播,过滤条件是电池状态改变时就发送广播

                registerReceiver(batteryRcv, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

 

                Toast.makeText(Battery.this, "Battery monitoring started", Toast.LENGTH_SHORT).show();

 

                start.setVisibility(View.GONE);

                stop.setVisibility(View.VISIBLE);

 

            }

 

        });

 

        stop.setOnClickListener(new View.OnClickListener() {

 

            public void onClick(View v) {

                unregisterReceiver(batteryRcv);

 

                Toast.makeText(Battery.this, "Battery monitoring stopped", Toast.LENGTH_SHORT).show();

 

                stop.setVisibility(View.GONE);

                start.setVisibility(View.VISIBLE);

 

            }

 

        });

 

    }

 

    @Override

    protected void onPause() {

        if (batteryRcv != null) {

            unregisterReceiver(batteryRcv);

            batteryRcv = null;

        }

        super.onPause();

    }

 

}

原创粉丝点击