1. 程式人生 > >Bluetooth 藍芽 操作

Bluetooth 藍芽 操作

//佈局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.a1511j.day02_.MainActivity"
> <Button android:id="@+id/btn_start" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="開啟藍芽" tools:layout_editor_absoluteX="6dp" tools:layout_editor_absoluteY="3dp" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart=
"true" android:layout_marginLeft="120dp" android:layout_marginStart="120dp" android:layout_marginTop="40dp" /> <Button android:id="@+id/btn_stop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="關閉藍芽" tools:layout_editor_absoluteX="-3dp" tools:layout_editor_absoluteY=
"77dp" android:layout_below="@+id/btn_start" android:layout_alignLeft="@+id/btn_start" android:layout_alignStart="@+id/btn_start" android:layout_marginTop="58dp" /> <Button android:id="@+id/btn_discoverable" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="可被發現藍芽" tools:layout_editor_absoluteX="-3dp" tools:layout_editor_absoluteY="155dp" android:layout_below="@+id/btn_stop" android:layout_alignLeft="@+id/btn_stop" android:layout_alignStart="@+id/btn_stop" android:layout_marginTop="51dp" /> <Button android:id="@+id/btn_search" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="搜尋藍芽" tools:layout_editor_absoluteX="6dp" tools:layout_editor_absoluteY="250dp" android:layout_marginLeft="17dp" android:layout_marginStart="17dp" android:layout_alignParentBottom="true" android:layout_alignLeft="@+id/btn_stop" android:layout_alignStart="@+id/btn_stop" android:layout_marginBottom="106dp" /> </RelativeLayout>
mian
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.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

public class MainActivity extends AppCompatActivity {

    //代替findviewByid;
@BindView(R.id.btn_start)
    Button btnStart;
    @BindView(R.id.btn_stop)
    Button btnStop;
    @BindView(R.id.btn_discoverable)
    Button btnSearch;
    @BindView(R.id.btn_search)
    Button button4;
    private BluetoothAdapter bluetoothAdapter;
    @Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        //獲取藍芽介面卡
bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    }

    @OnClick({R.id.btn_start, R.id.btn_stop, R.id.btn_search, R.id.btn_discoverable})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.btn_start:
                bluetoothAdapter.enable();
                Toast.makeText(MainActivity.this,"藍芽已開啟",Toast.LENGTH_SHORT).show();
                break;
            case R.id.btn_stop:
                bluetoothAdapter.disable();
                Toast.makeText(MainActivity.this,"藍芽已關閉",Toast.LENGTH_SHORT).show();
                break;
            case R.id.btn_discoverable:
                discoverableBluetooth();

                break;
            case R.id.btn_search:
                searchBluetooh();
                break;
        }
    }


    /**
     * 開啟藍芽的可檢測性
     */
private void discoverableBluetooth() {

        Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
        startActivityForResult(intent,0);
        Toast.makeText(MainActivity.this,"藍芽可檢測性已開啟",Toast.LENGTH_SHORT).show();
    }

    //搜尋藍芽
private void searchBluetooh() {
        //新增藍芽可以被發現
IntentFilter intentFilter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
        MBluetoothBroadCast mBluetoothBroadCast = new MBluetoothBroadCast();
        registerReceiver(mBluetoothBroadCast,intentFilter);

        IntentFilter intentFilter1 = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
        registerReceiver(mBluetoothBroadCast,intentFilter1);

        //開始找藍芽裝置
bluetoothAdapter.startDiscovery();


    }

    //符合我註冊的過濾器 ,就可以進入onReceive方法
class MBluetoothBroadCast extends BroadcastReceiver {
        //一旦被發現或連結,我們就能能收到廣播;
@Override
public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            //如果我們搜尋到了其他的藍芽,就會進入這個判斷
if( BluetoothDevice.ACTION_FOUND.equals(action)){
                //得到搜尋到的藍芽裝置
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);

                if(device.getBondState()!=BluetoothDevice.BOND_BONDED){
                    //用裝置獲取藍芽名字
System.out.println(device.getName()+",,,,,,,,,,,,,,,,");
                }
                //如果搜尋完畢,會進入這個判斷;
}else if(BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)){
                Toast.makeText(MainActivity.this, "已搜數完成", Toast.LENGTH_LONG).show();

            }

        }
    }


    @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

    }
}
//開啟藍芽的依賴
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

//開啟藍芽的許可權

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

相關推薦

Android之Bluetooth操作

2. 配置本機藍芽模組 在這裡首先要了解對藍芽操作一個核心類BluetoothAdapter 程式碼如下: BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); //直接開啟系統的藍芽設定面板 Intent intent = ne

Bluetooth 操作

//佈局<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app=

Android Bluetooth 強度Rssi

轉自 https://blog.csdn.net/lhc1105/article/details/54585632 轉自 https://blog.csdn.net/jasonwang18/article/details/73131020 轉自 http://www.cnblogs.co

Android通過Bluetooth傳送手機照片檔案到Windows PC:Java實現

Android通過Bluetooth藍芽傳送手機照片檔案到Windows PC:Java實現 本文在《Android通過藍芽傳送資料到Windows PC電腦:Java實現(連結地址:https://blog.csdn.net/zhangphil/article/details/831467

BlueTooth 4 0技術細節

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Bluetooth---

轉載自: https://blog.csdn.net/it1039871366/article/details/46441507 Tieto公司某藍芽大牛寫得《程式設計師》投稿文章 Android 4.2藍芽介紹 藍芽一詞源於公元十世紀丹麥國王HaraldBlatand名字中的Bla

BlueTooth 4 0技術細節

  雖然藍芽(Bluetooth)3.0都還尚未完全普及,Bluetooth SIG(藍芽技術聯盟,Bluetooth Special InterestGroup,後文簡稱BluetoothSIG)卻又再次推出了藍芽4.0規範,並表示這又是藍芽發展史上一次重大的革新。值藍芽4.0推出之時,我們特地採訪了Blu

BlueTooth: 歷史與發展

藍芽歷史:    藍芽(Bluetooth),或稱為藍芽,是一種無線個人區域網(Wireless PAN),最初由愛立信創制,後來由藍芽技術聯盟訂定技術標準。據說因為此技術尚在萌芽的階段,故將Bluetooth以“藍芽”的中文譯名在臺灣進行商 業的註冊,不過在2006年,該組

Android Bluetooth 4.0 詳解

本文介紹Android ble 藍芽4.0,也就是說API level >= 18,且支援藍芽4.0的手機才可以使用,如果手機系統版本API level < 18,也是用不了藍芽4.0的哦。 一、瞭解api及概念 1.1 BluetoothGatt 繼

BlueTooth: 音訊音質探討

                藍芽音訊音質探討簡介:本文簡單介紹了藍芽無線音訊技術 A2DP,並從技術角度探討其音質。1. 藍芽 A2DP 簡介我們先從藍芽核心規範說起,目前支援最廣泛的藍芽 2.0/2.1 + EDR 連線速率為 3Mbit/s,實際可用資料傳輸速率為 2.1Mbit/s。藍芽 3.0 引

BlueTooth: 協議棧實現模式分析

藍芽協議棧實現模式分析 藍芽技術是一項新興的技術。它的主要目的就是要在全世界範圍內建立一個短距離的無線通訊標準 。它使用 2.4-2.5 GHz 的 ISM( Industrion Scientifc Medical ) 頻段來傳送話音和資料。運用成熟、實用、先進的無線

轉載_Android Bluetooth開發\藍協議\藍通訊例子

一、Android Bluetooth現狀 (1)Android2.2版 支援的藍芽核心版本是Bluetooth 2.0 + EDR。 (2)Android 的藍芽 使用了BlueZ協議棧,但只實現了Handset/Handfree和A2DP/AVRCP等Profil

Bluetooth 開啟流程

藍芽的開啟連線主要流程: 開啟 檢測 掃描 連線 一、開啟(開啟藍芽BT Turn on Turn off) (藍芽的on/off由類BluetoothEnabler控制。) 開啟過程涉及到的類: BluetoothEnabler(on/of

Bluetooth-->開發之狀態判斷

1:判斷裝置是否支援藍芽 BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); if (null == adapter)

bluetooth() AVRCP協議概念及程式碼流程解析

一 概念   AVRCP全稱:The Audio/Video Remote Control Profile (AVRCP) 翻譯成中文就是:音視訊遠端控制協議。概念:AVRCP定義了藍芽裝置之間的音視訊傳輸的特點和流程,來確保不同藍芽裝置之間音視訊傳輸控制的相容。一般包括暫停,停止,播放,音量控制等遠端控制

安卓Bluetooth基本操作- (獲取附近裝置-1)

1、效果圖 2、AndroidManifest.xml新增如下程式碼 //所有手機需要的許可權,藍芽功能才能正常使用 <uses-permission android:name="android.permission.BLUET

Android開發之(Bluetooth)操作(二)--修改本機裝置的可見性,並掃描周圍可用的裝置

一. 修改本機藍芽裝置的可見性 二. 掃描周圍可用的藍芽裝置 Eg: 一.  清單檔案AdroidManifest.xml: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=

android 模組Bluetooth 使用 十六進位制資料傳送

一個藍芽模組看起來很小,弄起來還是有點複雜的,從網上找了一個示例程式碼,http://blog.csdn.net/vnanyesheshou/article/details/51554852但是不能直接用,需要自己進行閱讀理解和修改後才能使用。 先貼一張自制的uml圖: 從圖中不難看出

Android學習——Bluetooth

藍芽(Bluetooth) 藍芽(Bluetooth)是一種短距離的無線通訊技術標準。 藍芽協議 藍芽協議分為4層,即核心替代層、電纜替代協議層、電話控制協議層和採納的其他的協議層。這4種最重要的是核心協議層。藍芽協議包括基帶、鏈路管理、邏輯鏈路控制和適應協議四部分。其中鏈路

BLE---DA14683的GPIO操作

新增GPIO初始化函式 在main.c中,新增以下子函式,初始化GPIO口,按鍵的引腳設定為輸入,LED燈的引腳設定為輸出。 /*按鍵GPIO設定*/ void key_led_init() { hw_gpio_set_pin_function(HW_GP