Bootstrap

Android10 避坑

权限申请

内存读写权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
<application 
	android:requestLegacyExternalStorage="true">

网络权限

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<application
 	android:usesCleartextTraffic="true">

电话、蓝牙、WLAN需要精确的位置权限

首先需在AndroidManifest.xml中加上如下权限:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

除此之外还需要在Activity中动态申请权限

        if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.P) {
            if (ActivityCompat.checkSelfPermission(this,
                    Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
                    || ActivityCompat.checkSelfPermission(this,
                    Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
                String[] strings =
                        {Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION};
                ActivityCompat.requestPermissions(this, strings, 1);
            }
        } else {
            if (ActivityCompat.checkSelfPermission(this,
                    Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
                    || ActivityCompat.checkSelfPermission(this,
                    Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED
                    || ActivityCompat.checkSelfPermission(this,
                    "android.permission.ACCESS_BACKGROUND_LOCATION") != PackageManager.PERMISSION_GRANTED) {
                String[] strings = {android.Manifest.permission.ACCESS_FINE_LOCATION,
                        android.Manifest.permission.ACCESS_COARSE_LOCATION,
                        "android.permission.ACCESS_BACKGROUND_LOCATION"};
                ActivityCompat.requestPermissions(this, strings, 2);
            }
        }

最后一定要记得打开手机的定位功能

测试环节

安装包打包

在gradle.properties中加入

android.injected.testOnly=false

卸载已安装的APP

在手机上卸载APP未卸载干净时会导致无法安装应用,此时进入Terminal界面输入

adb uninstall com.example.myApplication/*此处输入要卸载APP的包名*/
;