0

Bluetooth Low Energy デバイスをスキャンして通知を表示するサービスがあります。これは、アプリが開始されているか、アプリがバックグラウンドにある場合に機能します。ただし、アプリがバックグラウンドから削除された場合、サービスは実行されていますが、Bluetooth スキャンは機能しません。アプリが強制終了された場合、サービスは何かを行うことができますか? ありがとうございました。

4

2 に答える 2

0

答えてくれてありがとう。問題は、アプリケーション コンテキストが利用できないことでした。これに対する解決策を見つけました。Alarmmanager を開始し、15 分ごとにインテントを送信します。このインテントは、AndroidManifest.xml で宣言されている独自のレシーバーによって処理されます。インテントが処理されると、アプリケーション コンテキストが利用可能になり、サービスを開始できます。

アラームマネージャーを起動

Intent alarmIntent = new Intent(MyApp.getAppContext(),AlarmBroadcastReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(MyApp.getAppContext(), 0, alarmIntent, 0);
AlarmManager alarmMgr = (AlarmManager)MyApp.getAppContext().getSystemService(Context.ALARM_SERVICE);
alarmMgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
        AlarmManager.INTERVAL_FIFTEEN_MINUTES,
        AlarmManager.INTERVAL_FIFTEEN_MINUTES, pi);

レシーバーのコード

package com.example;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class AlarmBroadcastReceiver extends BroadcastReceiver{

    @Override
    public void onReceive(Context arg0, Intent arg1) {

    }

}

AndroidManifest.xml でレシーバーを宣言する

<receiver 
        android:enabled="true" 
        android:name="com.example.AlarmBroadcastReceiver"
        android:exported="false">
        <intent-filter>
                <action android:name="com.example.AlarmBroadcastReceiver.checkservice" />
                <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
</receiver>
于 2014-02-05T13:30:02.350 に答える