開發(fā)過程中會(huì)遇到藍(lán)牙開發(fā)吹零,目前藍(lán)牙分兩種绩社,一種3.0經(jīng)典藍(lán)牙,可以大數(shù)據(jù)傳輸?shù)乃遥梢詡鬏攬D片屈糊,歌曲和視頻的的榛;一種是4.0低功耗藍(lán)牙,傳輸小字節(jié)的逻锐,比如藍(lán)牙手環(huán)夫晌;經(jīng)典藍(lán)牙用途也很多雕薪,很多單片機(jī)控件也是通過藍(lán)牙串口收發(fā)指令進(jìn)行動(dòng)作的;
這里是最基本的藍(lán)牙晓淀,能收發(fā)數(shù)據(jù)
這個(gè)藍(lán)牙的用法也很簡單所袁,首先要淘寶買個(gè)經(jīng)典藍(lán)牙的模塊然后通過usb將模塊連接到電腦,在電腦端打開串口助手就可以在串口助手當(dāng)中看到app發(fā)送過來的數(shù)據(jù)(藍(lán)牙模塊傳輸對(duì)于小白來說可能看起來會(huì)有點(diǎn)懵凶掰,這里不做詳細(xì)贅述)
這里詳細(xì)解說一下MainActivity
界面很簡單就是一個(gè)連接按鈕和讓設(shè)備可見按鈕燥爷,還有一個(gè)發(fā)送數(shù)據(jù)按鈕和一個(gè)接收內(nèi)容的TextView;
藍(lán)牙連接的邏輯
- 獲得BluetoothAdapter
- 判斷有沒有藍(lán)牙
- 有的話那就打開藍(lán)牙
- 藍(lán)牙初始化
- 通過藍(lán)牙地址建立連接
- 收發(fā)數(shù)據(jù)
藍(lán)牙連接在6.0系統(tǒng)運(yùn)行的話就要考慮到權(quán)限問題懦窘,藍(lán)牙需要一個(gè)定位的權(quán)限這里是通過一個(gè)監(jiān)聽事件來獲得權(quán)限的局劲,也可以在初始化中獲得權(quán)限
權(quán)限庫依賴
compile 'me.weyye.hipermission:library:1.0.3'
定位權(quán)限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
//進(jìn)入藍(lán)牙 動(dòng)態(tài)申請(qǐng)定位權(quán)限
ic = (ImageView) findViewById(R.id.ic);
ic.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//單獨(dú)的權(quán)限只叫ondeny和onguarantee
HiPermission.create(LoginActivity.this).checkSinglePermission(Manifest.permission.ACCESS_COARSE_LOCATION, new PermissionCallback() {
@Override
public void onClose() {
Toast.makeText(LoginActivity.this, "用戶關(guān)閉權(quán)限申請(qǐng)", Toast.LENGTH_SHORT).show();
}
@Override
public void onFinish() {
Toast.makeText(LoginActivity.this, "所有權(quán)限申請(qǐng)完成", Toast.LENGTH_SHORT).show();
}
@Override
public void onDeny(String permisson, int position) {
Toast.makeText(LoginActivity.this, "快開啟權(quán)限", Toast.LENGTH_SHORT).show();
}
@Override
public void onGuarantee(String permisson, int position) {
// startActivity(new Intent(LoginActivity.this,BluetoothActivity.class));
}
});
}
});
里面除了Mainactivity其他的基本上不需要?jiǎng)樱_發(fā)過程可能會(huì)遇到些問題那就是收發(fā)數(shù)據(jù)的格式奶赠,具體問題具體分析鱼填,也就是說你要是在單片機(jī)中發(fā)送中文的話,要以GBK格式發(fā)送毅戈,接收數(shù)據(jù)的話可能會(huì)出現(xiàn)串行苹丸,用起來的話可能會(huì)遇到各種問題,不過花點(diǎn)時(shí)間都是可以解決的苇经,這個(gè)也是谷歌的官方DEMO赘理;