Java 与所选设备进行蓝牙配对

Java 与所选设备进行蓝牙配对,java,android,bluetooth,Java,Android,Bluetooth,这是我的问题,可能一个接一个 我有一个活动,应用程序会检查蓝牙是否打开,如果没有,它会显示一个弹出窗口,其中有一个按钮来激活它 当激活时,有一个按钮将搜索蓝牙设备 现在我的问题是,如何才能配对到将使用密码保护的选定设备,如果已配对,则只需连接到该设备(无需再次输入密码) 连接到设备后,应转到下一页 这是我的密码 package com.example.silcamanager96x32; import android.os.Bundle; import android.app.Activity

这是我的问题,可能一个接一个

我有一个活动,应用程序会检查蓝牙是否打开,如果没有,它会显示一个弹出窗口,其中有一个按钮来激活它

当激活时,有一个按钮将搜索蓝牙设备

现在我的问题是,如何才能配对到将使用密码保护的选定设备,如果已配对,则只需连接到该设备(无需再次输入密码)

连接到设备后,应转到下一页

这是我的密码

package com.example.silcamanager96x32;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
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.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
import android.view.View.OnClickListener;
import android.widget.AdapterView.OnItemClickListener;

public class Bluetooth_check extends Activity {

    //global variables
    private final static int REQUEST_ENABLE_BT = 1;
    private  ArrayAdapter<String> btArrayAdapter;

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

        btn_go();
        btn_scan();

    }

    //tijdelijke button volgende pagina
    public void btn_go(){
        Button btn_go=(Button)findViewById(R.id.Button01);
        btn_go.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                  Log.i("clicks","You Clicked B1");
              Intent i=new Intent(
                     Bluetooth_check.this,
                     home.class);
              startActivity(i);
            }
        });
    }

    //button scannen naar bluetooth apparaten en in ene lijst plaatsen
    public void btn_scan(){
        final Button scanb = (Button)findViewById(R.id.button);
        final ListView Deviceslist = (ListView)findViewById(R.id.listView1);   
        btArrayAdapter = new ArrayAdapter<String>(Bluetooth_check.this, android.R.layout.simple_list_item_1);    
        Deviceslist.setAdapter(btArrayAdapter);

        //vraagt of app bluetooth mag inschakelen
        final BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
        if (mBluetoothAdapter == null) {
            // Device does not support Bluetooth
            Toast.makeText(Bluetooth_check.this, "Your device doesnot support Bluetooth", Toast.LENGTH_LONG).show();
        }

        if (!mBluetoothAdapter.isEnabled()) {
            Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
            startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
        }

        //onclick scan button
        scanb.setOnClickListener(new OnClickListener()
        {
         public void onClick(View v)
            {
          btArrayAdapter.clear(); 
          mBluetoothAdapter.startDiscovery();
          Toast.makeText(Bluetooth_check.this, "Scanning Devices", Toast.LENGTH_LONG).show();

            }
        });

         Deviceslist.setOnItemClickListener( new OnItemClickListener() {

            public void onItemClick(AdapterView<?> arg0, View v, int position,
                    long id) {
                // onclick item gevonden apparaten

                     AlertDialog.Builder adb = new AlertDialog.Builder(
                     Bluetooth_check.this);
                     adb.setTitle("ListView OnClick");
                     adb.setMessage("Selected Item is = "
                     + Deviceslist.getItemAtPosition(position));
                     adb.setPositiveButton("Ok", null);
                     adb.show();                     
                                 }

         });

        registerReceiver(FoundReceiver, new IntentFilter(BluetoothDevice.ACTION_FOUND));
    }

    @Override
    protected void onDestroy() { 
    // TODO Auto-generated method stub 
    super.onDestroy();
    unregisterReceiver(FoundReceiver);
    }

    private final BroadcastReceiver FoundReceiver = new BroadcastReceiver(){ 
     @Override
     public void onReceive(Context context, Intent intent) { 
      // TODO Auto-generated method stub 
      String action = intent.getAction();  
      if(BluetoothDevice.ACTION_FOUND.equals(action)) {   
       BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
       btArrayAdapter.add(device.getName() + "\n" + device.getAddress());
       btArrayAdapter.notifyDataSetChanged();          
      }
  }};


}
package com.example.silcamanager96x32;
导入android.os.Bundle;
导入android.app.Activity;
导入android.app.AlertDialog;
导入android.bluetooth.BluetoothAdapter;
导入android.bluetooth.bluetooth设备;
导入android.content.BroadcastReceiver;
导入android.content.Context;
导入android.content.Intent;
导入android.content.IntentFilter;
导入android.util.Log;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.ListView;
导入android.widget.Toast;
导入android.view.view.OnClickListener;
导入android.widget.AdapterView.OnItemClickListener;
公共类蓝牙检查扩展活动{
//全局变量
私有最终静态整数请求\启用\ BT=1;
专用阵列适配器btArrayAdapter;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u bluetooth\u check);
btn_go();
btn_扫描();
}
//tijdelijke按钮volgende pagina
公共无效btn_go(){
按钮btn_go=(按钮)findViewById(R.id.Button01);
btn_go.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
Log.i(“点击”,“你点击B1”);
意向i=新意向(
检查一下这个,
家庭、班级);
星触觉(i);
}
});
}
//Ne lijst plaatsen中的按钮扫描naar蓝牙装置
公共无效btn_扫描(){
最终按钮scanb=(按钮)findviewbyd(R.id.Button);
最终ListView设备列表=(ListView)findViewById(R.id.listView1);
btArrayAdapter=新的ArrayAdapter(Bluetooth\u check.this,android.R.layout.simple\u list\u item\u 1);
DeviceList.setAdapter(btArrayAdapter);
//应用程序蓝牙mag inschakelen的vraagt
final BluetoothAdapter mBluetoothAdapter=BluetoothAdapter.getDefaultAdapter();
if(mBluetoothAdapter==null){
//设备不支持蓝牙
Toast.makeText(Bluetooth_check.this,“您的设备不支持Bluetooth”,Toast.LENGTH_LONG.show();
}
如果(!mBluetoothAdapter.isEnabled()){
Intent enablebintent=新意图(BluetoothAdapter.ACTION\u REQUEST\u ENABLE);
startActivityForResult(启用BTIntent、请求\启用\ BT);
}
//点击扫描按钮
scanb.setOnClickListener(新的OnClickListener()
{
公共void onClick(视图v)
{
btArrayAdapter.clear();
mBluetoothAdapter.startDiscovery();
Toast.makeText(Bluetooth_check.this,“扫描设备”,Toast.LENGTH_LONG.show();
}
});
setOnItemClickListener(新的OnItemClickListener(){
公共视图单击(AdapterView arg0,视图v,内部位置,
长id){
//点击项目gevonden公寓
AlertDialog.Builder adb=新建AlertDialog.Builder(
蓝牙(检查。这个);
adb.setTitle(“ListView OnClick”);
adb.setMessage(“所选项目为=”
+DeviceList.getItemAtPosition(位置));
adb.setPositiveButton(“确定”,空);
adb.show();
}
});
registerReceiver(FoundReceiver,new IntentFilter(BluetoothDevice.ACTION_FOUND));
}
@凌驾
受保护的空onDestroy(){
//TODO自动生成的方法存根
super.ondestory();
未注册接收人(FoundReceiver);
}
private final BroadcastReceiver FoundReceiver=新的BroadcastReceiver(){
@凌驾
public void onReceive(上下文、意图){
//TODO自动生成的方法存根
String action=intent.getAction();
if(BluetoothDevice.ACTION_FOUND.equals(ACTION)){
BluetoothDevice=intent.getParcelableExtra(BluetoothDevice.EXTRA\u设备);
添加(device.getName()+“\n”+device.getAddress());
btArrayAdapter.notifyDataSetChanged();
}
}};
}

试试这个链接这里是完整的代码。。。并添加对清单的权限

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