我正在使用由radiusnetworks发布的AndroidIbeacon库,我能够成功运行他们的演示应用程序。但是,当我向我的应用程序添加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) {
}
}
}
请帮我解决这个问题。感谢
答案 0 :(得分:1)
如果显式合并不起作用,试试这个(为我工作):
将以下服务声明添加到AnroidManifest.xml,将{my app's 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's package name}.DID_RANGING" />
<action android:name="{my app's package name}.DID_MONITORING" />
</intent-filter>
</service>
答案 1 :(得分:0)
此问题的最常见原因是启动库服务的正确条目不在项目AndroudManifest.xml文件中。您的新项目必须使用名为manifest merge的功能从库的清单中提取这些条目。
确保您已按照设置说明here进行操作。如果使用Eclipse,请验证project.properties是否为manifestmerger.enabled=true
。
答案 2 :(得分:0)