0

まず第一に、私がしたことはリンクに似ています( Android iBeacon Library - How to bind IBeaconManager to service in remote process ):

  1. Serviceを拡張してIBeaconConsumerを実装する 独自の MyIBe​​aconService を定義しました。IBeaconManagerメンバーを含み、バインド/アンバインドなどの対応する API を提供します。onIBeaconServiceConnect()では、 MonitorNotifierとRangeNotifierを設定し、監視とレンジングを開始し、対応するノーティファイアのコールバックが呼び出されたときにアクティビティにインテントをブロードキャストします。
  2. メイン アクティビティは MyIBe​​aconService にバインドし対応するBraodcastReceiveronResume()に登録します。
  3. 次に、メイン アクティビティが MyIBe​​aconService に正常にバインドされたら、ServiceConnection::onServiceConnected() で IBeaconManager.bind を呼び出して MyIBe ​​aconServiceIBeaconServiceにバインドします

ただし、MyIBe​​aconService::onIBeaconServiceConnect は呼び出されていません。上記のリンクの回答に基づいて、生成された AndroidManifest.xml ファイルを以下に投稿しました
。 1. MyIBe​​aconService の AndroidManifest.xml

<uses-sdk android:minSdkVersion="18" android:targetSdkVersion="19"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>    
<application android:allowBackup="true">
    <service android:name="com.xxx.ibeaconlib.MyIBeaconService">
    </service>
    <service android:enabled="true" android:exported="true" android:isolatedProcess="false" android:label="iBeacon" android:name="com.radiusnetworks.ibeacon.service.IBeaconService">
    </service>
    <service android:enabled="true" android:name="com.radiusnetworks.ibeacon.IBeaconIntentProcessor">
    </service>
</application>

2. MyIBe​​aconService の project.properties

target=android-19
android.library=true
manifestmerger.enabled=true
android.library.reference.1=../../../Downloads/AndroidIBeaconLibrary

3. 私の Android アプリケーションの AndroidManifest.xml

<uses-sdk android:minSdkVersion="18" android:targetSdkVersion="19"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme">
    <activity android:label="@string/app_name" android:name="com.radiusnetworks.ibeaconreference.MonitoringActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <activity android:label="@string/app_name" android:name="com.radiusnetworks.ibeaconreference.RangingActivity">
        <intent-filter>
        </intent-filter>
    </activity>
    <activity android:label="@string/app_name" android:name="com.radiusnetworks.ibeaconreference.BackgroundActivity">
        <intent-filter>
        </intent-filter>
    </activity>
    <service android:name="com.xxx.ibeaconlib.MyIBeaconService">
    </service>
<service android:enabled="true" android:exported="true" android:isolatedProcess="false" android:label="iBeacon" android:name="com.radiusnetworks.ibeacon.service.IBeaconService">
</service>
<service android:enabled="true" android:name="com.radiusnetworks.ibeacon.IBeaconIntentProcessor">
</service>
</application>

4. Android アプリケーションの project.properties

   target=android-19  
   manifestmerger.enabled=true //please confirm this line is added and remove the comment then
   android.library.reference.1=../../Documents/workspace/iBeaconLib  
4

0 に答える 0