我想发现bluetooth范围内的设备,列表并在点击时与它们配对.当我点击我要配对的设备名称时,我使用了以下代码,但它只关闭了应用程序.
我想知道我的代码中的错误或任何其他方式来做我需要的.
package com.marakana;
import java.util.Set;
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.util.Log;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
public class BluetoothDemo extends Activity {
// Debugging
private static final String TAG = "DeviceListActivity";
private static final boolean D = true;
// Return Intent extra
public static String EXTRA_DEVICE_ADDRESS = "device_address";
// Member fields
private …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,我以编程方式控制蓝牙配对和取消配对.我可以在连接前配对,然后取消配对.我需要这样做的原因是我的申请特定而不是我的问题范围.
基本上我正在做的是:
ib,以IBluetooth在对象描述这个答案android.bluetooth.device.action.PAIRING_REQUESTib.createBond(address)ib.setPin(address, pinBytes)从BroadcastReceiver内部呼叫无论如何,这种方法效果很好,除了当我进行配对时,我在状态栏中收到通知,要求用户输入PIN以完成配对.但这实际上是不必要的,因为当用户看到这个时,我的应用已经使用过setPin().我真的很喜欢这个通知要么a)根本不出现,要么b)以某种方式自动被解雇.
我意识到这可能是不可能的,但我想如果有人有创意,我会问.
我可以通过蓝牙配对两台设备而无需在用户界面中确认,接受配对此设备.我可以通过NFC交换一些额外的数据,然后通过蓝牙安全地配对这两个设备而无需任何额外的用户操作吗?
对于我的应用程序,我正在尝试以编程方式配对蓝牙设备.我能够显示我想要配对的设备的配对对话框,我可以输入密码.当我按"配对"时,对话框被删除,没有任何反应.
我只需要支持Android 2.0及更新版本的设备.
目前我正在使用以下代码来启动配对进度:
public void pairDevice(BluetoothDevice device) {
String ACTION_PAIRING_REQUEST = "android.bluetooth.device.action.PAIRING_REQUEST";
Intent intent = new Intent(ACTION_PAIRING_REQUEST);
String EXTRA_DEVICE = "android.bluetooth.device.extra.DEVICE";
intent.putExtra(EXTRA_DEVICE, device);
String EXTRA_PAIRING_VARIANT = "android.bluetooth.device.extra.PAIRING_VARIANT";
int PAIRING_VARIANT_PIN = 0;
intent.putExtra(EXTRA_PAIRING_VARIANT, PAIRING_VARIANT_PIN);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)
在开始配对请求之前,我停止扫描新设备.
我的应用程序具有以下蓝牙权限:
我希望能够预先配对蓝牙设备,以便在使用应用程序时节省用户混淆的步骤.我发现有用于预配对蓝牙设备的系统,方法和装置的专利 .
我正在寻找将一系列Android设备与一系列嵌入式设备配对,因此当设置Android设备时,我可以预先将它与需要与之通信的设备配对.我考虑过维护一个可以由应用程序下载和更新的MAC地址列表.
有没有办法配对两个设备而不必让它们接触?
我是Android编程的初学者,因为我3个月前才开始.我正在做一个项目,使用蓝牙将Android应用程序连接到arduino.我已经有了Android应用程序的代码(bluetooth.adapter,socket,.etc.).连接代码已经正常工作.其中一个目标是Android应用程序在与蓝牙设备配对时自动输入密码,而无需用户输入PIN.
这个论坛上的旧帖子没什么用.(许多建议使用不安全模式,但我确实需要安全模式,在我的情况下,arduino是服务器,而手机应用程序是客户端,因此createInsecureRfcommSocketToServiceRecord()服务器方法对我不起作用)
我在android开发者网站上搜索并发现了这个关于bluetoothdevice类的信息:
setPairingConfirmation(boolean confirm)确认PAIRING_VARIANT_PASSKEY_CONFIRMATION配对的密码.
PAIRING_VARIANT_PIN ="将提示用户输入图钉或应用程序将为用户输入图钉".
PAIRING_VARIANT_PASSKEY_CONFIRMATION ="系统将提示用户确认屏幕上显示的密钥或应用程序将确认用户的密钥"
似乎使用代码,应用程序将是输入密码和确认密码使其成为"自动连接"功能,但Android网站没有给出如何使用它的示例代码.你们有没有使用这个或相关过程的示例代码?我感谢您的帮助!
请任何人帮助我将我的Android手机与其他已发现的手机以编程方式配对?