让Android蓝牙不断被发现

时间:2011-06-21 14:40:33

标签: android

当我从http://code.google.com/p/android/issues/detail?id=6348#makechanges的讨论中读到时,我们可以无限制地让Android蓝牙发现,我看到蜂窝3.1现在公开可用,任何人都可以解释使用蜂窝3.1开发环境如何让蓝牙不断被发现? 我探索了文档,但找不到适合我解决方案的方法。 。 提前致谢 。 。

4 个答案:

答案 0 :(得分:1)

我相信BluetoothAdapter.startDiscovery()会阻止蓝牙适配器被发现,直到您拨打BluetoothAdapter.cancelDiscovery()

答案 1 :(得分:0)

遵循意图应该这样做。

Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,0); startActivity(discoverableIntent);

'您可以通过添加EXTRA_DISCOVERABLE_DURATION Intent extra来定义不同的持续时间。应用程序可以设置的最长持续时间为3600秒,值为0表示设备始终可被发现。“

来源:http://developer.android.com/guide/topics/connectivity/bluetooth.html

答案 2 :(得分:0)

You can try this:
try {
Method bluetoothDeviceVisibility;
bluetoothDeviceVisibility = mBluetoothAdapter.getClass().getMethod("setScanMode", int.class, int.class);
bluetoothDeviceVisibility.invoke(mBluetoothAdapter, BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE, 0);

} catch (Exception e) {
e.printStackTrace();
}

答案 3 :(得分:-2)

在广播接收器内:

if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
                    // When discovery is finished, change the Activity title
                    Log.d("***","Discovery finished");
                    mBluetoothAdapter.startDiscovery();
                    Log.d("","starting discovery..");
}

它不是完美的解决方案,但它可以满足我的需求