今天把flutter_blue_plus升級(jí)到1.8.0后發(fā)現(xiàn)獲取定位權(quán)限時(shí)總是失敗。查看日志發(fā)現(xiàn)permission_handler報(bào)了 No permissions found in manifest for: []5 的錯(cuò)誤。
根據(jù)網(wǎng)上的方法試了flutter clean和flutter pub cache repair都沒有用。實(shí)在找不到原因,只好把flutter_blue_plus回退到1.3.1,發(fā)現(xiàn)權(quán)限又正常了。
通過對(duì)比兩個(gè)版本的源碼的manifest文件,發(fā)現(xiàn)1.8.1版本的ACCESS_FINE_LOCATION上加了maxSdkVersion限制,我現(xiàn)在編譯的sdk版本是33,合并后自然就把這個(gè)權(quán)限給去掉了。
1.3.1版本
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
1.8.0版本
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="30"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" android:maxSdkVersion="28" />
解決辦法:在權(quán)限聲明的地方加上tools:remove="android:maxSdkVersion"即可。
<uses-permission android:name="android.permission. ACCESS_FINE_LOCATION" tools:remove="android:maxSdkVersion"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" tools:remove="android:maxSdkVersion"/>