這裏是我用來檢測進入區域的事件示例代碼:AltBeacon圖書館後臺服務
public class BeaconApplication extends android.app.Application implements BootstrapNotifier {
private static final String TAG = "TAGTAG";
@Override public void onCreate() {
super.onCreate();
Log.d(TAG, "App started up");
new BackgroundPowerSaver(this);
new RegionBootstrap(this, new Region(getPackageName(), null, null, null));
}
@Override public void didDetermineStateForRegion(int arg0, Region arg1) {
Log.d(TAG, "didDetermineStateForRegion");
}
@Override public void didEnterRegion(Region arg0) {
Log.d(TAG, "didEnterRegion");
}
@Override public void didExitRegion(Region arg0) {
Log.d(TAG, "didExitRegion");
}
}
,如果我用下面的build.gradle配置,然後一切正常像預期中的問題
compileSdkVersion 21
buildToolsVersion "21.0.0"
defaultConfig {
applicationId "com.test"
minSdkVersion 18
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
的logcat:
d/TAGTAG:應用程序啓動
d/TAGTAG:didDetermineStateForRegion
d/TAGTAG:didEnterRegion
但是,如果我改變compileSdkVersion
實際版本再沒有什麼工作
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.test"
minSdkVersion 18
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
的logcat:
D/TAGTAG:App started up
對於測試,我允許通過應用程序信息的位置權限。動態權限和應用信息 - >權限有什麼區別嗎? – Near1999
我不確定你用什麼工具來設置App Info - >權限,但我懷疑它只是在AndroidManifest.xml中設置聲明的權限。你也必須這樣做,但從Android 6.0開始這是不夠的。某些權限還需要運行時的動態請求。 – davidgyoung
我在菜單中拿着應用程序圖標,將它拖到頂部的「應用程序信息」,然後選擇「權限」,並在那裏啓用位置權限 – Near1999