4

Bluetoothベースのアプリケーションを実行しています.nokiaデバイスやプリンターなどの他のデバイスを接続したいです。

Android Bluetooth ドキュメントhttp://developer.android.com/guide/topics/connectivity/bluetooth.htmlを参照します。それはすべての基本的な Bluetooth API 機能を示しています。そして、これらすべてのことを行いました。

Scanning for other Bluetooth devices
Querying the local Bluetooth adapter for paired Bluetooth devices
Establishing RFCOMM channels/sockets
Connecting to a remote device
Transfering data over Bluetooth

AndroidのサンプルであるBluetoothChatから参照を取得します。

BluetoothChat This application send data to another android device but for that this application must be installed in both the devices.

このようにコードでBluetooth経由でAndroidデバイスから他のデバイスにファイルを送信する方法

私が欲しいのは

  1. アプリケーションからあるデバイスから別のデバイスにファイルを送信したいのですが、アプリケーションを実行していない別のデバイスでも機能します。つまり、レシーバー デバイスは、デフォルトの Bluetooth を使用してファイルを受信することもできます。

これはアンドロイドで可能ですか?

4

2 に答える 2

0

これは不可能だと思います。

実際、Bluetoothソケットを作成するときは、使用する必要がありますcreateRfcommSocketToServiceRecord(UUID)

この関数には、接続を確立できるように、2 つのデバイス上のアプリケーション間で共有される文字列である UUID が必要です。

まったく同じ UUID を持つ他のデバイスでリッスンする Bluetooth ソケットがなければ、データを共有することはできません。

于 2012-12-17T12:07:13.973 に答える
0

2 つの BT デバイス間の接続を簡単に行うことができます。あなたはただ電話する必要があります

createRfcommSocketToServiceRecord(UUID)

受信デバイスを理解する UUID を使用します。ファイル転送アクションの場合、UUID は (たとえば) 00001106-0000-1000-8000-00805F9B34FB (ファイル転送サービス) と等しくなければなりません

したがって、接続コードは以下のコードのようになります

BluetoothDevice device = mBluetoothAdapter.getRemoteDevice("00:0A:94:16:77:A0"); BluetoothSocket clientSocket;

try {
    log(TAG, "Remote device " + device);
    ParcelUuid[] uuids = device.getUuids();
    boolean isFileTransferSupported = false;
    UUID ftpUID = UUID.fromString("00001106-0000-1000-8000-00805F9B34FB");
    // Check if remote device supports file transfer
    for (ParcelUuid parcelUuid: uuids) {
        if (parcelUuid.getUuid().equals(ftpUID)) {
            isFileTransferSupported = true;
            break;
        }
    }
    if (!isFileTransferSupported) {
        log(TAG, "Remote bluetooth device does not supports file transfer ");
        return;
    }
    clientSocket = device.createRfcommSocketToServiceRecord(ftpUID);
    clientSocket.connect();
} catch (IOException e) {
    return;
}
于 2013-06-21T14:37:48.370 に答える