2

IBeacon サービスに radiusnetworks Android API を使用しています。彼らのドキュメントによると、「範囲を構築するとき、これらのフィールドの一部またはすべてを null に設定できます。これは、それらがワイルドカードであり、任意の値に一致することを示します。」ただし、proximityUUID が null の領域を作成すると、null ポインター例外が発生します。スタックは次のとおりです。

Thread [<1> main] (Suspended (exception NullPointerException))  
<VM does not provide monitor information>   
RegionData(Region).hashCode() line: 140 
HashMap.containsKey(Object) line: 332   
IBeaconService.startRangingBeaconsInRegion(Region, Callback) line: 262  
IBeaconService$IncomingHandler.handleMessage(Message) line: 151 
IBeaconService$IncomingHandler(Handler).dispatchMessage(Message) line: 99   

これは、proximityUUID を値に設定すると発生しません。このライブラリを使用して、近接 uuid を null に設定しようとした人はいますか?

4

1 に答える 1

0

Region のメジャーおよびマイナーの ProximityUuid は null の場合がありますが、コンストラクターの最初のパラメーターである「uniqueId」に何らかの値を指定する必要があります。

new Region("com.myappname.myregiondescriptor", null, null, null);

これは機能しますが、次のようにすると、説明したエラーが表示されます。

new Region(null, null, null, null);

その最初のパラメーターは、iBeacon 識別子とは関係ありません。アプリの一意の参照文字列としてのみ使用されるため、同じ uniqueId 文字列を持つ領域を IBeaconManager に渡すことで、後で測距/監視をキャンセルできます。任意の値を指定できますが、同じ uniqueId 値を持つ 2 番目のリージョンで監視またはレンジングを開始すると、現在監視されているそのリージョンが置き換えられます。

于 2013-12-13T18:39:21.720 に答える