2011-05-25 83 views
0

我正在開發一個應用程序,其中我有文件uri以及bt設備地址與我。我需要將文件發送到定義的bt設備。但是,設備選取器屏幕不應顯示。 它應該直接啓動設備發送藍牙文件通過BluetoothShare類發送不工作

顯然,intent:ACTION_SEND不是一個選項在這裏,因爲它會顯示選擇器對話框。應用程序的主要內容是繞過選擇器對話框,並使用戶能夠將選定的文件直接發送到選定的設備。

所以,我想在堆棧溢出提出了以下解決方案:

/*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);*/ 

但不幸的是,它不工作。在getContentResolver()。insert之後,不會執行任何操作。不用說,我已經嘗試過各種權限和其他東西,但沒有任何效果。

因此,使用此代碼的人請提供您的建議。任何幫助滿足要求將非常感激。

+0

這看起來像Android代碼,所以我添加了[tag:android]和[tag:java]標籤。如果這不正確,請修復它。 – 2011-07-09 02:48:20

+0

我也面臨這個問題的任何解決方案?我也試過這個代碼是在HTC AMAZE上工作,但不是在三星平板電腦P1000 – Naveed 2013-04-01 18:41:10

回答

0

它是否會產生異常?請分享您的Logcat輸出。

順便說一句,請使用您在AndroidManifest.xml

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

以下權限如果你正在做設備發現,太清單文件

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

我還添加此發現了這個問題。我可以展示一些證據來解決這個問題。嘗試此代碼後,請檢查設備的出站傳輸隊列(將其打開,手動將文件發送到設備並單擊通知圖標)。然後您可以看到設備嘗試發送對象,但這些都失敗了。點擊一條失敗消息,您可以看到沒有文件路徑的彈出窗口。我認爲問題是,雖然在這裏我們使用URI設置文件路徑,但它不會在過程中檢查contentValues。我們必須爲此做一些事情。