由于需要用到系统权限,外置SD卡不能将文件保存在非/android/com.XXXX下,故需要使用到系统权限,
如下属性 可以不用加 我反正没加 也没什么事,在AndroidManifest.xml文件中有如下属性
android:sharedUserId="android.uid.system"
在android studio中编译出来apk就是安装不上,报如下错误
INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
看来是要系统的签名, 但是 由于客户lib库使用了自己扩展android SDK版本,没法放在我们的源码里面编译; 后来google了下,发现可以让android studio支持系统签名,这就用到了keytool-importkeypair ,
github地址
https://github.com/getfatday/keytool-importkeypair
使用起来也比较的简单,找到系统的 platform.pk8 和 platform.x509.pem 放在 keytool-importkeypair目录下执行:
./keytool-importkeypair -k ./platform.keystore -p android -pk8 platform.pk8 -cert platform.x509.pem -alias platform
platform.pk8和platform.x509.pem都是系统的签名
如上所示:android 是你自己工程的keypassword alias后的platform是你自己工程的
最好与你之前的密钥保持一致
修改 build.gradle 再次编译即可
signingConfigs {
releaseConfig {
keyAlias 'platform'
keyPassword 'android'
storeFile file('/home/gyniu/tools/keystore/platform.keystore')
storePassword 'android'
}
}
如上使用 这样就可以使用系统的权限 将文件放到外置SD卡上的任意目录下