0

前提は、IBeacon SDK を使用して実装するライブラリを作成していることです。私のコードはそのSDKを実装する必要があり、誰かが私のライブラリを使用する場合、このSDKとまったくやり取りする必要がないため、より高いレベルのコードベースを作成しています。

現在、私のコードはそれ自体ではアクティビティを使用できません。これは単なるライブラリであり、別のユーザーが私のコードを実装します。したがって、私のコードは IBeacon イベントを消費し、それ自体がアクティビティになることなく何かを行う必要があります。

したがって、IBeaconConsumer を自分で実装すると、ライブラリを使用する人がアクティビティ/コンテキストを提供し、それを IBeacon SDK に渡します。

これを行うと、次の問題が発生します (適切な mainfest コードを使用した場合)。

アクティビティはその iBeaconManager オブジェクトをバインドしますが、onIBeaconServiceConnect は呼び出されません。このstackoverflowの質問を参照してください: Android IBeaconManagerがアクティビティから接続していません

私の漠然とした仮定は次のとおりです。 IBeaconConsumer を実装するクラスはアクティビティではなく、IBeacon サービスをバインドしているクラスと同じクラスではないため、問題が発生する可能性があります。すべてが機能し、エラーがなく、ibeacon アクティビティがないため、デバッグが非常に困難です。マニフェストにパーツを追加するのを忘れた場合と同じ動作です。

4

1 に答える 1

1

IBeaconConsumer実装をActivityまたはのインスタンスにしない場合は、およびメソッドを有効なインスタンスServiceにチェーンし、その有効なインスタンスをメソッドから返すだけです。を使用してこのインターフェイスを実装する場合は、 がこれら 3 つのメソッドを実装するため、これは必要ありません。bindServiceunbindServiceApplicationContextgetApplicationContextActivityActivity

この例は、関連する質問のこちらで見ることができます。

于 2014-05-13T01:17:16.930 に答える