最近项目有需求,需要向sd卡写入文件,在网上找了一大堆文章,很多文章都是吧Internal Storage当成了sd卡,到最后解决办法都变成了如何动态申请权限了。
在此记录一下我的解决办法,在安卓4.4之后,使用android.permission.WRITE_EXTERNAL_STORAGE
权限已经不能向外置sd卡里面写文件了,申请外置sd卡的权限需要使用google提供的Storage Access Framework,具体使用DocumentFile进行文件的写入,而不能使用OutputStream写文件,无论是否有权限,否则会报FileNotFound错误。
下面的代码先申请sd卡的权限,然后在sd卡根目录写入一个名为123.txt文件
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_simpletest);
requestSdCardUriPermission(this, 2);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// real w