onIBeaconServiceConnect () не вызывается в Android

1

Я использую библиотеку AndroidIbeacon, выпущенную radiusnetworks, и я могу успешно запустить их демонстрационное приложение. Но когда я добавляю это к моему приложению, метод onIBeaconServiceConnect() не вызывается.

Ниже моего кода

 public class Sample extends Activity implements IBeaconConsumer {
  protected static final String TAG = "Sample";
  private IBeaconManager iBeaconManager = IBeaconManager
        .getInstanceForApplication(this);

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity);
    iBeaconManager.bind(this);
}

@Override
protected void onDestroy() {
    super.onDestroy();
    iBeaconManager.unBind(this);
}

@Override
public void onIBeaconServiceConnect() {
    iBeaconManager.setMonitorNotifier(new MonitorNotifier() {
        @Override
        public void didEnterRegion(Region region) {
            Log.i(TAG, "I just saw an iBeacon for the firt time!");
        }

        @Override
        public void didExitRegion(Region region) {
            Log.i(TAG, "I no longer see an iBeacon");
        }

        @Override
        public void didDetermineStateForRegion(int state, Region region) {
            Log.i(TAG,
                    "I have just switched from seeing/not seeing iBeacons: "
                            + state);
        }
    });

    try {
        iBeaconManager.startMonitoringBeaconsInRegion(new Region(
                "myMonitoringUniqueId", null, null, null));
    } catch (RemoteException e) {
    }
   }

  }

Пожалуйста, помогите мне решить эту проблему. спасибо

Теги:
ibeacon-android
ibeacon

3 ответа

1

Если манифестное слияние не работает, попробуйте это (сработало для меня):

Добавьте следующие объявления объявлений в свой AnroidManifest.xml, заменив {my app package name} на полное имя пакета вашего приложения для Android.

    <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">
            <meta-data android:name="background" android:value="true" />
        <intent-filter 
           android:priority="1" >
            <action android:name="{my app package name}.DID_RANGING" />
            <action android:name="{my app package name}.DID_MONITORING" />
        </intent-filter>
    </service>  
0

добавление

manifestmerger.enabled=true

в project.properties работал у меня!

Источник

  • 1
    Почему? Пожалуйста, объясните ваше решение.
  • 0
    Ссылка на источник не работает. На что это должно было указывать?
Показать ещё 1 комментарий
0

Наиболее распространенной причиной этой проблемы является то, что правильные записи для запуска службы библиотеки не находятся в файле AndroudManifest.xml проекта. Ваш новый проект должен извлекать эти записи из манифеста библиотеки, используя функцию слияния манифеста.

Убедитесь, что вы выполнили инструкции по настройке здесь. Если вы используете Eclipse, проверьте, имеет ли проект project.properties manifestmerger.enabled=true.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню