1,要使用蓝牙,首先要增加权限

 <uses-permission android:name="android.permission.BLUETOOTH" />    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

2,创建蓝牙控制类

package com.win16.bluetoothclass2;import android.app.Activity;import android.bluetooth.BluetoothAdapter;import android.content.Intent;/** *蓝牙控制 * Created by huwenbao on 2015/5/26. */public class BlueToothController {    private BluetoothAdapter mAdapter;    public BlueToothController() {        mAdapter = BluetoothAdapter.getDefaultAdapter();    }    /** * 是否支持蓝牙 * @return true 支持, false 不支持 */    public boolean isSupportBlueTooth() {       if( mAdapter != null ){           return true;       }        else {           return false;       }    }    /** *获取当前蓝牙是否可用 * @return true 可用,false 不可用 */    public boolean getBlueToothStatus() {        assert (mAdapter != null);        return mAdapter.isEnabled();    }    /** *打开蓝牙 * @param activity * @param requestCode */    public void turnOnBlueTooth(Activity activity, int requestCode) {        Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);        activity.startActivityForResult(intent, requestCode);// mAdapter.enable();    }    /** * 关闭蓝牙 */    public void turnOffBlueTooth() {        mAdapter.disable();    }}

3,界面展示

package com.win16.bluetoothclass2;import android.bluetooth.BluetoothAdapter;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Toast;public class MainActivity extends ActionBarActivity {    public static final int REQUEST_CODE = 0;    private BlueToothController mController = new BlueToothController();    private Toast mToast;    /** * 监听蓝牙开关的广播 */    private BroadcastReceiver receiver = new BroadcastReceiver() {        @Override        public void onReceive(Context context, Intent intent) {            int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,-1);            switch (state) {                case BluetoothAdapter.STATE_OFF:                    showToast("STATE_OFF");                    break;                case BluetoothAdapter.STATE_ON:                    showToast("STATE_ON");                    break;                case BluetoothAdapter.STATE_TURNING_ON:                    showToast("STATE_TURNING_ON");                    break;                case BluetoothAdapter.STATE_TURNING_OFF:                    showToast("STATE_TURNING_OFF");                    break;                default:                    showToast("Unkown STATE");                    break;            }        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);        registerReceiver(receiver, filter);    }    @Override    protected void onDestroy() {        unregisterReceiver(receiver);        super.onDestroy();    }    public void isSupportBlueTooth(View view) {        boolean ret = mController.isSupportBlueTooth();        showToast("support Bluetooth? " + ret);    }    public void isBlueToothEnable(View view) {        boolean ret = mController.getBlueToothStatus();        showToast("Bluetooth enable?" + ret);    }    public void requestTurnOnBlueTooth(View view) {        mController.turnOnBlueTooth(this, REQUEST_CODE);    }    public void turnOffBlueTooth(View view) {        mController.turnOffBlueTooth();    }    private void showToast(String text) {        if( mToast == null) {            mToast = Toast.makeText(this, text, Toast.LENGTH_SHORT);        }        else {            mToast.setText(text);        }        mToast.show();    }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        //当发起请求蓝牙打开事件时,会告诉你用户选择的结果        if( resultCode == RESULT_OK) {            showToast("打开成功");        }        else {            showToast("打开失败");        }    }}

4,界面布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    android:orientation="vertical"    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/support_bluetooth"        android:id="@+id/is_support_blue_tooth"        android:onClick="isSupportBlueTooth" />    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/is_turn_on"        android:id="@+id/is_blue_tooth_enable"        android:onClick="isBlueToothEnable" />    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/turn_on"        android:id="@+id/turn_on_blue_tooth"        android:onClick="requestTurnOnBlueTooth" />    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/turn_off"        android:id="@+id/turn_off_blue_tooth"        android:onClick="turnOffBlueTooth" /></LinearLayout> 

下载地址

http://download.csdn.net/detail/eandroidhu/9433844

更多相关文章

  1. Android右滑返回上一个界面的实现方法
  2. Android 蓝牙开发 基础
  3. Android 简单EventBus登录界面与传值(粘性事件)
  4. 打开app弹出欢迎界面,然后自动跳转到主界面
  5. [Android]判断当前界面是否是桌面
  6. Android studio跳转界面
  7. Android:程序跳过登录界面直接进入主界面(自动登录)
  8. Android中蓝牙的简单使用
  9. 【Android】首次进入应用时加载引导界面

随机推荐

  1. android背景选择器总结
  2. Android(安卓)开发环境的构建备忘
  3. android viewholder
  4. android闹钟
  5. 【Android】从源码中探讨Handler机制
  6. Android(安卓)访问权限设置
  7. 如何发布android应用程序
  8. Android各版本对应的SDK和JDK版本
  9. Invoke-customs are only supported star
  10. android win8效果实现进阶(一)