2017-06-30 18 views
0

バックグラウンドサービスを実装する必要があります。バックグラウンドサービスはデバイス用にBLE経由でスキャンし、BLEデバイスに接続します。だから私の質問はどのサービスを使うべきか?BLE接続のバックグラウンドサービス

  • IntentService
  • JobSheduler

答えて

2

私はserviceIntentServiceが同様に目的を果たすだろう)を使用することをお勧めします。 Android documentationは、きちんと関与する主要なステップをキャプチャします。サンプルコードは、そこにAPIの使用をデモするserviceを使用しています: -

public class BluetoothLeService extends Service { 
    private final static String TAG = BluetoothLeService.class.getSimpleName(); 

    private BluetoothManager mBluetoothManager; 
    private BluetoothAdapter mBluetoothAdapter; 
    ......... 
    ......... 
    ......... 
1

どちらもあなたの問題を解決することができ、それはちょうどあなたがスキャンが行わしたいかによって異なります。インテントサービスは、特定の条件が満たされ、インテントサービスを有効にしてスキャンを開始したが、スキャンのタスクが完了した後にインテントサービスを記録しただけで、サービスが停止され、その他のライフサイクル方法が実行された場合にのみ、したがって、サービスを開始するタイミングを制御する外部条件がある場合にのみ機能します。今すぐジョブスケジューラはポーリングを伴うでしょう。これはポーリングを続ける必要があり完璧ですが、あなたのタイミングを考慮する必要があるので、あなたの最高のケースのシナリオでしょう。個人的には、サービスクラスを拡張してマニフェストからエクスポートすることをお勧めします。

関連する問題