2014-09-26 157 views
0

我正在開發iOS藍牙LE應用程序。首先我將IOS(中央)與我的藍牙芯片(外設)配對。藍牙低功耗背景

1)發現外圍設備。 2)連接到外設。 3)獲得服務和特點。 4)能讀取數據並寫入數據。 5)保存從外圍

外圍 6)斷開當運行該應用程序的第二時間,將自動連接到外圍,並寫入和從它的特性和斷開讀取數據。該應用程序在後臺運行10分鐘。

我想在後臺運行這個應用程序。那就是我想每6個小時調用一次在後臺連接,寫入和讀取值的方法。這可能嗎?我的應用程序僅在後臺運行10分鐘。任何建議都會有很大的幫助。

回答

0

首先,你需要確保你補充說:

<key>UIBackgroundModes</key> 
<array> 
    <string>bluetooth-central</string> 
    <string>bluetooth-peripheral</string> 
</array> 

您的Info.plist,這將使您的應用程序在後臺運行。

但是,這將工作如下:它將允許您的應用「喚醒」任何藍牙事件,並運行您希望在應用獲取任何藍牙活動時觸發的方法。

因此,例如:

  • 你可以掃描在後臺的藍牙設備,一旦找到了適合你的指標分析可以運行的代碼,如didDiscoverPeripheral火災(連接/讀/寫等)。
  • 您可以連接到設備並訂閱來自特定特徵的通知。一旦特性發生變化,你的應用程序在後臺應該會收到通知,並且將會調用回調,因此您可以再次調用此方法,仍然在後臺運行。
  • 也許你可以考慮其他用例。我已經提到過這些場景,讓你知道如何確實可以在BTLE的後臺工作。

這些情況不應限制在10分鐘的時間範圍內。

但是我注意到如果你在背景模式下運行其他東西(例如:一個循環)並且10分鐘過去了,你的應用程序可能會從後臺被殺死,所以即使上述回調也不起作用。

所以到回答您的6小時問題:如果您的BTLE設備每6小時啓動一次BLE操作來喚醒您的應用程序,那麼這將是可能的。另外,我不確定你可以從app(ios)方面開始你的活動。

+0

感謝您的意見。 – 2014-09-27 23:05:58