是否有任何方式使用OBEX發送使用android bluetooth API的文件?使用藍牙OBEX對象推送配置文件(OPP)發送文件
我需要將文件發送到僅支持OBEX OPP的打印機。
我可以使用Android的意圖ACTION_SEND到沒有問題的打印機發送的文件,但我需要以編程方式發送..
我可以連接到使用OBEX OPP UUID藍牙打印機(1105)該方法createRfcommSocketToServiceRecord(),但後來我應該遵循OBEX規範發送使用OBEX文件..它是不是字節寫入到輸出插座一樣簡單..
但是,如果意向ACTION_SEND可以解決這個問題,爲什麼開發人員無法發送這些文件?
我也查了一些第三方庫像BlueCove,但我還是沒有 得到它的工作。(歌Nexus One &的Galaxy Tab拋出一個異常,說本機庫bluecove_armv71不可用..和LG擎天柱一說bluecove_armv61不可用..)
我卡住了,有什麼想法嗎?
工作液
對於任何人試圖將文件發送到藍牙設備沒有運氣,我提供使用內容提供商(感謝KPBird)工作方案:
抓住java類BluetoothShare從here
比,下面的代碼發送文件的SD卡上的藍牙設備:
BluetoothDevice device;
String filePath = Environment.getExternalStorageDirectory().toString() + "/file.jpg";
ContentValues values = new ContentValues();
values.put(BluetoothShare.URI, Uri.fromFile(new File(filePath)).toString());
values.put(BluetoothShare.DESTINATION, device.getAddress());
values.put(BluetoothShare.DIRECTION, BluetoothShare.DIRECTION_OUTBOUND);
Long ts = System.currentTimeMillis();
values.put(BluetoothShare.TIMESTAMP, ts);
Uri contentUri = getContentResolver().insert(BluetoothShare.CONTENT_URI, values);
UPDATE
有些人遇到上述解決方案的問題,已經對下列設備進行測試:
文選:
- LG的Optimus One(Android 2.1版)
- HTC Desire(Android 2.2)
- 谷歌Nexus One(Android 2.2和2.3)
- 三星Galaxy S2(安卓4.0.3)
- HTC驚奇(安卓2.3.4)
有問題的:
- LG P500(安卓2.3.3)
- Galaxy TAB P500(Android 2.2)
- 谷歌Nexus S(Android 4.1。2)
如果你能來測試上面沒有列出的設備這個片段中,請提供你測試了它的設備(品牌名稱,Android版本,等等)的細節,以及測試結果,在下面的評論中,我會更新包括您的數據在內的問題。
您好ShadowCloud,在上面的代碼中,一旦contentUri填充,哪裏藍牙設備發生推??我沒有看到任何代碼... – 2011-06-01 06:28:28
此代碼不適用於從4.1開始的操作系統 – Harish 2013-06-25 20:12:57