0

GPS の使用状況を追跡するアプリを開発しています (GPS のオン/オフだけでなく、位置要求も)。

調査の結果、マニフェストで次のコードを使用してこれをアーカイブできることがわかりました。

<receiver android:name=".triggers.TriggerGPS">
    <intent-filter>
        <action android:name="android.location.GPS_ENABLED_CHANGE" />
    </intent-filter>
</receiver>

アプリが GPS を要求するたびに、TriggerGPS クラスが呼び出されます。

public class TriggerGPS extends BroadcastReceiver {

    Calendar c = Calendar.getInstance();

    @Override
    public void onReceive(Context context, Intent intent) {

            String currentDatetime = c.get(Calendar.DAY_OF_MONTH) + "/" + c.get(Calendar.MONTH) + "/" +
                    c.get(Calendar.YEAR) + " " + c.get(Calendar.HOUR_OF_DAY) + ":" +
                    c.get(Calendar.MINUTE) + ":" + c.get(Calendar.SECOND);

            Log.d("---------log--------", "Intent ( " + intent.getAction() + " ) GPS Status onReceive : " + currentDatetime);
    }
}

しかし、私のアプリは、各アプリが GPS を使用しており、アプリが GPS を使用して 1 日あたりの座標を取得した回数を示すレポートを作成する必要があります。

ここでの問題は、イベントをブロードキャストしたアプリ名を取得する方法がわからないことです。

それを行う方法はありますか?

皆さん、ありがとうございました。

4

1 に答える 1

1

ここでの問題は、イベントをブロードキャストしたアプリ名を取得する方法がわからないことです。

アプリはそれをブロードキャストしませんIntent。システムはそれをブロードキャストしIntentます。ユーザーがデバイス設定を変更してロケーション プロバイダーを有効または無効にした理由を特定する方法はありません。結局のところ、特定のアプリ主導の理由である必要はありません。ユーザーは、通知シェードのタイルをタップするか、[設定] に移動してプロバイダーの状態を切り替えるか、笑いのために状態を変更することを選択するだけです。

于 2016-07-07T20:58:22.777 に答える