android 藍芽重複掃瞄

2021-07-25 17:13:42 字數 1919 閱讀 4212

我想在service內讓藍芽可以一直執行掃瞄,之前在activity內可以重複掃瞄,但移植到服務後就不能了請問要怎麼解決?

public class search_beacon extends service implements locationlistener 

@override

public void oncreate()

@override

public int onstartcommand(intent intent, int flags, int startid) 

final bluetoothmanager bluetoothmanager =

(bluetoothmanager) getsystemservice(context.bluetooth_service);

mbluetoothadapter = bluetoothmanager.getadapter();

//gps

locationmanager = (locationmanager) getsystemservice(location_service);

//set the location provider

criteria criteria = new criteria();

criteria.setaccuracy(criteria.accuracy_coarse);

best_loc = locationmanager.getbestprovider(criteria, true);

if (best_loc != null) 

//計時器設定

starttime = system.currenttimemillis();

//設定定時要執行的方法

timer.removecallbacks(updatetimer);

//設定delay的時間

timer.postdelayed(updatetimer, 5000);

if (mbluetoothadapter.isenabled()) 

scanledevice(true);

}return service.start_sticky; 

}private void scanledevice(final boolean enable)  else 

}}, scan_period);

if (build.version.sdk_int < 21)  else 

} else  else }}

string device_mac;

integer device_rssi;

private scancallback mscancallback = new scancallback() 

//if(update_record(device_mac,device_rssi))

log.i("jiejv",device_mac+"   "+device_rssi);

}@override

public void onbatchscanresults(listresults) 

}@override

public void onscanfailed(int errorcode) 

};private bluetoothadapter.lescancallback mlescancallback =

new bluetoothadapter.lescancallback() 

});}

};//固定要執行的方法

private runnable updatetimer = new runnable() 

}record.clear();

timer.postdelayed(this, 10000);}};

@override

public void ondestroy() 

}

Android藍芽掃瞄和連線

最近在做藍芽簽到功能時,了解了藍芽的一部分知識,雖然不夠深入,但是感覺良好,他的整體思路如下 在指定時間內,開啟藍芽,掃瞄周邊藍芽訊號,如果有指定的藍芽,則由使用者確認連線藍芽,最終簽到成功.首先,我們先寫乙個工具類,來判斷當前時間是否在指定時間之內 判斷時間是否在時間段內 param date 當...

藍芽掃瞄過濾

需要實現乙個過濾條件為devicename的功能。1.藍芽掃瞄的時候有兩種方法。1.1mbluetoothadapter.startlescan mlescancallback 這個方法已經過時 bluetoothmanager bm bluetoothmanager getsystemservic...

Android 藍芽4 0踩坑 掃瞄不到裝置

藍芽開啟之後啟動掃瞄。用2.0 bluetoothadapter.startdiscovery 這個方法可以發現藍芽裝置。但是使用低功耗藍芽的api bluetoothlescanner bluetoothlescanner bluetoothadapter.getbluetoothlescanne...