-1

このError code 2 in beacon transmitter for Android Beacon libraryコードのトランスミッターアプリを作成し、iBeaconとして送信することができます。ビーコンライブラリー - トランスミッター

問題1:私は更新ムービーからアプリを殺した場合に送信することができ、もはやアプリは(私はフォアグラウンドサービスからこれを呼び出すべきではありませんaltbeaconsライブラリから任意のビルトインAPI?)

問題2:私がする必要があります接続が確立したらスキャナに10文字の文字列を送信しますが、setDataFields()は6桁のみを許可します。

+0

使用しているデバイスモデルとオペレーティングシステムのバージョンを教えてください。問題1に関して、アプリを殺す前にリブートして送信しようとすると、正常に送信されていますか? – davidgyoung

+0

Android N搭載のMoto G5 plus。再起動後に起動しませんでした。私はアプリケーションクラスをサブクラス化し、送信のためにビーコンクラスの参照を保持すべきですか?私はそれを自動スタートにするためにマニフェストを変更する必要がありますか? – nags

+0

問題2の手がかりも与えてください。固有のコードで特定のデバイス(ビーコン)を特定できない場合、そのサービスを使用しているユーザーの分析を取得することはできません。 Bluetoothのアドレスは他のすべての接続と一緒に変化しています。つまり、ビーコンを一意に識別するために使用できません。 – nags

答えて

0

Androidアプリをバックグラウンドで実行するのはちょっと難しいですが、これは送信機の動作を維持するために必要な作業です。

Androidビーコンライブラリはスキャン目的でこれを自動的に行います。したがって、ライブラリの参照アプリケーションを開始点として使用して、送信をApplicationクラスのonCreateメソッドに置くことができます。

これは、Android 5-7で送信機がかなり永遠に続くようにします。 Android 8では、フォアグラウンドサービスを構築しない限り、15分ごとに約5分間バックグラウンドで実行することに限定されています。

EDIT

あなたはデータの数バイトを宣伝したい場合は、あなたの最善の策は、16バイトのID1(ProximityUUID)フィールドに符号化することです。ビーコンがあなたのものであるかどうかを判断するために最初の数バイトを予約し、最後の10バイトを使用してデータをエンコードすることができます。受信側では、identifier.getBytes()を使用して最初の識別子をバイト配列に変換し、内部のデータ要素にアクセスできます。

+0

ありがとう、問題1は、トランスミッタからスキャナへのデータ送信(またはその逆)(問題2)を解決しましたか? – nags

+0

私の編集をご覧ください。 – davidgyoung