package com.example.bluetoothpro;

import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {
 BluetoothAdapter adapter;
 Button open;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        open =(Button) findViewById(R.id.open);
        MyListener listener = new MyListener();
        open.setOnClickListener(listener);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    private class MyListener implements OnClickListener {

  @Override
  public void onClick(View arg0) {
   // TODO Auto-generated method stub
   if(open==arg0) {
    adapter= BluetoothAdapter.getDefaultAdapter();
    if(adapter==null) {
     Toast.makeText(MainActivity.this,"not supoort the device",Toast.LENGTH_SHORT).show();
    }else {
     if(adapter.isEnabled()){
      //已打开蓝牙
      BluetoothRev receiver = new BluetoothRev();
      IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
      registerReceiver(receiver, filter);
      IntentFilter notfilter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
      registerReceiver(receiver, notfilter);
      adapter.startDiscovery();
      unregisterReceiver(receiver);
     }else {
      //打开蓝牙
      Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
      startActivity(intent);
      BluetoothRev receiver = new BluetoothRev();
      IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
      registerReceiver(receiver, filter);
      adapter.startDiscovery();
      unregisterReceiver(receiver);
     }
    }
   }
  }
  private class BluetoothRev extends BroadcastReceiver{
   boolean isFound = false;
   @Override
   public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub
    String action = intent.getAction();
    if(BluetoothDevice.ACTION_FOUND.equals(action)){
     BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
     isFound = true;
     Toast.makeText(MainActivity.this,device.getName()+","+device.getAddress(), Toast.LENGTH_SHORT).show();
    }else
     if(BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)){
      if(isFound==false){
       Toast.makeText(MainActivity.this,"not found",Toast.LENGTH_SHORT).show();
      }else {
       Toast.makeText(MainActivity.this,"found",Toast.LENGTH_SHORT).show();
      }
      adapter.cancelDiscovery();
      //MainActivity.this.unregisterReceiver(this);
    }
   }
  }
     
    }
   
}

更多相关文章

  1. android 打开 url 方式
  2. Android调用系统程序
  3. Android(安卓)自定义APP开机启动,并打开其它App
  4. Android遇到 android studio "Internal HTTP server disabled: C
  5. Android之蓝牙设备使用
  6. ADT下载地址整理
  7. Android(安卓)打开浏览器的几种方法
  8. 最新版 Android(安卓)SDK 无法获取SDK包 的解决方案
  9. Android闪光灯的打开与关闭

随机推荐

  1. 使用http协议获取网络图片
  2. android 导入第三方库出现java.lang.NoCl
  3. java.util.concurrent.ExecutionExceptio
  4. Android 安装apk的方法
  5. android开发笔记之LayoutInflater的理解
  6. android图片压缩工具类分享
  7. Android(安卓)Camera预览左右上下镜像
  8. Android设置全屏两种方式
  9. 下拉列表
  10. Handle Android Out of memory exception