当前位置:首页 » 安卓系统 » 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问答社区

热点内容
固定桌面文件夹 发布: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
手机里压缩包是什么 发布:2024-10-23 22:08:43 浏览:626