當前位置:首頁 » 安卓系統 » android藍牙20

android藍牙20

發布時間: 2024-10-23 21:26:21

❶ android如何獲取當前藍牙版本

設置-手機信息-藍牙版本,目前主流手機的藍牙版本皆在2.0左右!~如果再不可以就安裝個Android感應器查看啊!

❷ android開發 搜索周圍藍牙設備並把搜索到的藍牙設備名存入數組 完整代碼應該怎麼寫

我這邊舉個例子吧:

在布局中拖入一個ListView空間,假如id就叫listView1;
在layout文件夾中,新建一個布局xml文件,假如叫items,可以選擇RelativeLayout布局;裡面放一個TextView,假如id是textView1(該布局就是ListView每一行的布局);
下面的例子中,可以把容器中的String換成自定義的類:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107

package com.example.test;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

private ArrayList<String> btList = new ArrayList<String>(); // 用於保存獲取到的藍牙名稱
private MyAdapter mAdapter; // 適配器

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();
initListView();

// 若藍牙列表數據更新後,可以用以下方法通知ListView更新顯示
mAdapter.notifyDataSetChanged();

}

/**
* 初始化數據
*/
private void initData() {
// 假如在這里添加藍牙設備到ArrayList

// 假如列表中有數據,先清空
btList.clear();

for (int i = 0; i < 10; i++) {
btList.add("藍牙" + i);
}

}

/**
* 初始化ListView
*/
private void initListView() {
ListView listView = (ListView) findViewById(R.id.listView1);
// 為ListView設置適配器
mAdapter = new MyAdapter();
listView.setAdapter(mAdapter);

listView.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// 在這里對點擊事件進行
// position是當前點擊的行;根據它可以獲得容器中對應的值
String btName = btList.get(position);
Toast.makeText(MainActivity.this, "當前點擊的是:" + btName,
Toast.LENGTH_SHORT).show();
}
});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

class MyAdapter extends BaseAdapter {

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View inflate = getLayoutInflater().inflate(R.layout.item, null);
TextView textView = (TextView) inflate.findViewById(R.id.textView1);// 查找item中的textView
String btName = btList.get(position);
textView.setText(btName);
return inflate;
}

@Override
public int getCount() {
// 決定ListView的行數,這里設成容器內容數
return btList.size();
}

@Override
public Object getItem(int position) {
return null;
}

@Override
public long getItemId(int position) {
return 0;
}

}

}

❸ android中藍牙2.0和4.0的區別是什麼

最主要的區別就是藍牙2.0的傳輸速度沒有藍牙4.0快。以下為藍牙各版本的說明。x0dx0ax0dx0a1.1 為最早期版本,傳輸率約在748~810kb/s,因是早期設計,容易受到同頻率之產品所干擾下影響通訊質量。x0dx0a藍牙1.2標准x0dx0a1.2 同樣是只有 748~810kb/s 的傳輸率,但在加上了(改善 Software)抗干擾跳頻功能。x0dx0a藍牙2.0標准x0dx0a2.0 是 1.2 的改良提升版,傳輸率約在 1.8M/s~2.1M/s,開始支持雙工模式——即一面作語音通訊,同時亦可以傳輸檔案/高質素圖片,2.0 版本當然也支持 Stereo 運作。x0dx0a應用最為廣泛的是Bluetooth 2.0+EDR標准,該標准在2004年已經推出,支持Bluetooth 2.0+EDR標準的產品也於2006年大量出現。x0dx0a雖然Bluetooth 2.0+EDR標准在技術上作了大量的改進,但從1.X標准延續下來的配置流程復雜和設備功耗較大的問題依然存在。x0dx0a藍牙2.1標准x0dx0a2007年8月2日,藍牙技術聯盟今天正式批准了藍牙2.1版規范,即「藍牙2.1+EDR」,可供未來的設備自由使用。和2.0版本同時代產品,目前仍然占據藍牙市場較大份額,相對2.0版本主要是提高了待機時間2倍以上,技術標准沒有根本性變化。x0dx0a藍牙3.0標准x0dx0a2009年4月21日,藍牙技術聯盟(Bluetooth SIG)正式頒布了新一代標准規范"Bluetooth Core Specification Version 3.0 High Speed"(藍牙核心規范3.0版 ),藍牙3.0的核心是"Generic Alternate MAC/PHY"(AMP),這是一種全新的交替射頻技術,允許藍牙協議棧針對任一任務動態地選擇正確射頻。x0dx0a藍牙3.0的數據傳輸率提高到了大約24Mbps(即可在需要的時候調用802.11 WI-FI用於實現高速數據傳輸)。在傳輸速度上,藍牙3.0是藍牙2.0的八倍,可以輕松用於錄像機至高清電視、PC至PMP、UMPC至列印機之間的資料傳輸,但是需要雙方都達到此標准才能實現功能。x0dx0a藍牙4.0標准x0dx0a藍牙4.0規范於2010年7月7日正式發布,新版本的最大意義在於低功耗,同時加強不同OEM廠商之間的設備兼容性,並且降低延遲,理論最高傳輸速度依然為24Mbps(即3MB/s),有效覆蓋范圍擴大到100米(之前的版本為10米)。該標准晶元被大量的手機、平板所採用,如蘋果The New iPad平板電腦,以及蘋果iPhone 5、魅族MX4、HTC One X等手機上帶有藍牙4.0功能。x0dx0a藍牙4.1標准x0dx0a藍牙4.1於2013年12月6日發布,與LTE無線電信號之間如果同時傳輸數據,那麼藍牙4.1可以自動協調兩者的傳輸信息,理論上可以減少 其它信號對藍牙4.1的干擾。改進是提升了連接速度並且更加智能化,比如減少了設備之間重新連接的時間,意味著用戶如果走出了藍牙4.1的信號范圍並且斷開連接的時間不算很長,當用戶再次回到信號范圍中之後設備將自動連接,反應時間要比藍牙4.0更短。最後一個改進之處是提高傳輸效率,如果用戶連接的設備 非常多,比如連接了多部可穿戴設備,彼此之間的信息都能即時發送到接接收設備上。x0dx0a除此之外,藍牙4.1也為開發人員增加了更多的靈活性,這個改變對普通用戶沒有很大影響,但是對於軟體開發者來說是很重要的,因為為了應對逐漸興起的可穿戴設備,那麼藍牙必須能夠支持同時連接多部設備。x0dx0a目前支持該標準的手機還比較少,三星GALAXY Note4則是其中具有代表性的一款。x0dx0a藍牙4.2標准x0dx0a2014年12月4日,最新的藍牙4.2標准頒布,改善了數據傳輸速度和隱私保護程度,並接入了該設備將可直接通過IPv6和6LoWPAN接入互聯網。在新的標准下藍牙信號想要連接或者追蹤用戶設備必須經過用戶許可,否則藍牙信號將無法連接和追蹤用戶設備。x0dx0a速度方面變得更加快速,兩部藍牙設備之間的數據傳輸速度提高了2.5倍,因為藍牙智能(Bluetooth Smart)數據包的容量提高,其可容納的數據量相當於此前的10倍左右。藍牙的版本自然是越高級越好,考慮到傳輸距離和功耗的問題,最新的藍牙4.1是優選,但是目前市場上藍牙4.1的產品並不多,而主流的藍牙4.0產品性價比更高,至於藍牙3.0、2.1及以下的版本已經失去選購的價值。

❹ 怎樣辨別手機藍牙版本的高低

藍牙目前暫時共有四個版本 V1.1/1.2/2.0/2.1。
若需查看手機版本,建議依次點擊設定-關於設備(更多-關於設備)-Android版本/基帶版本。
手機連接藍牙方法:
1、打開藍牙功能:設定-(連接)-藍牙-開啟。
2、開啟藍牙可見模式,操作:
1).若使用的是安卓2.3或之前版本的安卓系統:設定-無線和網路-藍牙設置-可見-打勾。
2).若使用的是安卓4.0或以上系統:設定-(連接)-藍牙-滑動開啟,上方「對其他藍牙設備不可見」-打勾(開啟可見模式)。
3、掃描附近的藍牙設備並配對連接,在兩台設備的藍牙配對請求對話框里分別點擊【確定】即可。

❺ Android 手機可以通過 BLE 被掃描到嗎

Android手機的藍牙功能可以通過BLE(Bluetooth Low Energy)被其他設備掃描到,前提是手機的系統版本API level >= 18,且手機支持藍牙4.0。如果手機系統版本API level < 18,那麼藍牙4.0功能將無法使用。
首先,我們可以查看官方提供的BLE指南,以了解如何開發支持BLE的應用程序:[官方BLE指南](http://developer.android.com/guide/topics/connectivity/bluetooth-le.html)。此外,還可以下載官方的示例代碼,以了解如何實現藍牙4.0設備的搜索、配對、連接、發現服務和特徵值,以及斷開連接等功能:[示例代碼下載地址](http://download.csdn.net/detail/lqw770737185/8116019)。
接下來,我們了解一下Android藍牙開發中涉及的一些關鍵API和概念:
1.1 `BluetoothGatt`:繼承自`BluetoothProfile`,通過`BluetoothGatt`可以實現設備的連接、發現服務,並將屬性數據回調至`BluetoothGattCallback`。
1.2 `BluetoothGattCharacteristic`:相當於一種數據類型,包括一個`value`和0到多個`value`的描述(`BluetoothGattDescriptor`)。
1.3 `BluetoothGattDescriptor`:描述符,對`Characteristic`的描述,包括范圍、計量單位等。
1.4 `BluetoothGattService`:服務,是`Characteristic`的集合。
1.5 `BluetoothProfile`:一個通用規范,按照此規范進行數據的收發。
1.6 `BluetoothManager`:通過`BluetoothManager`獲取`BluetoothAdapter`。
```java
BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
```
1.7 `BluetoothAdapter`:Android系統中只有一個`BluetoothAdapter`,通過`BluetoothManager`獲取。
```java
BluetoothAdapter mBluetoothAdapter = bluetoothManager.getAdapter();
```
1.8 `BluetoothGattCallback`:回調對象,用於處理連接狀態變化、特徵值寫入、讀取等操作的結果。
```java
private BluetoothGattCallback GattCallback = new BluetoothGattCallback() {
// 實現9個必須方法,根據需要實現
};
```
1.9 `BluetoothDevice`:掃描後發現的可連接設備,以及獲取已連接的設備。
開啟藍牙許可權需要在AndroidManifest.xml中聲明硬體許可權:
```xml

```
在代碼中檢查設備是否支持藍牙4.0:
```java
if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {
Toast.makeText(this, "設備不支持藍牙4.0", Toast.LENGTH_SHORT).show();
finish();
}
```
對藍牙的啟動關閉操作包括:
1. 利用系統默認的藍牙開啟對話框。
```java
if (mBluetoothAdapter == null || !mBluetoothAdapter.isEnabled()) {
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
}
```
2. 後台打開藍牙,不顯示任何提示。
```java
mBluetoothAdapter.enable();
```
3. 後台關閉藍牙。
```java
mBluetoothAdapter.disable();
```
最後,掃描設備、連接設備、獲取設備信息、斷開連接設備的詳細操作可以參考官方示例代碼,以獲得更清晰的指導。

❻ Android BLE藍牙踩坑總結

自從 Android-BLE 庫開源了一段時間以來,越來越多的小夥伴問到了各種各樣的關於BLE的奇怪問題,在這里我想跟大家分享一下本人對於Android BLE藍牙的一些看法和解決方式,避免剛接觸的小夥伴再次踩坑。

很多人曾問過我這個問題,為什麼其他手機都沒什麼問題,就華為的一些手機老是連接不穩定,經常連接的很慢,而且連接上還經常斷開。的確,在這里強調一下華為的一部分手機確實很容易出現這種問題,有時候軟體、硬體都搞不定,而且經常性收到客戶投訴關於華為手機連接穩定性問題,這個的確沒有完全解決的辦法,只能靠App和硬體的優化,並不是想甩鍋給華為,咱也不敢問到底是什麼原因,而且我們公司專門針對各個Android版本的手機做過測試,包括藍牙傳輸速率的測試,最後發現華為P20的速度竟然跟小米8的速度差了好幾倍,按理說P20手機也不便宜啊,為什麼手機藍牙晶元不能做的再好一點呢?

BLE掃描濫用預防

AOSP-BLE掃描濫用說明

息屏狀態下,藍牙掃描日誌,因為掃描周期是12s,所以列印的時間戳間隔是12s,這里的日誌為系統日誌。

https://android.googlesource.com/platform/external/bluetooth/bluedroid/+/master/include/bt_target.h#1428

stackoverflow問答社區

熱點內容
迴流sql 發布:2024-10-23 23:21:11 瀏覽:855
固定桌面文件夾 發布:2024-10-23 23:15:03 瀏覽:59
java比較string大小 發布:2024-10-23 23:13:36 瀏覽:111
python字典按順序 發布:2024-10-23 23:13:32 瀏覽:946
汽車配置怎麼選配 發布:2024-10-23 22:57:25 瀏覽:84
手動檔為什麼配置低 發布:2024-10-23 22:45:25 瀏覽:788
mc網易伺服器里電腦怎麼打字 發布:2024-10-23 22:38:16 瀏覽:678
中國青少年編程考試官網 發布:2024-10-23 22:13:12 瀏覽:390
惠普電腦伺服器運行失敗 發布:2024-10-23 22:12:14 瀏覽:578
c語言里括弧 發布:2024-10-23 22:12:12 瀏覽:482