
三星设备是带有Android 7.0 API 24的T810,并且具有SD卡,我们创建的其他应用程序已将该SD卡正确写入SD卡上的sqlite DB.可悲的是,我们不知道这是否是在AndroID 7.0更新之前.到目前为止,我们无法使用下面发布的代码来写入SD卡.在运行API 26的仿真器上,设备文件浏览器正在显示此信息
数据库仿真器
/mnt/user/0/primary/AndroID/data/com.androIDstackoverflow.onepass/files/documents/PassWord
存储
/storage/emulated/0/AndroID/data/com.androIDstackoverflow.onepass/files/documents/PassWord
SD卡模拟器
/sdcard/AndroID/data/com.androIDstackoverflow.onepass/files/documents/PassWord
public String getThePath(){ file removable = ContextCompat.getExternalfilesDirs(this,null)[0]; if (removable.exists() && removable.canRead() && removable.canWrite()) { THE_PATH = String.valueOf(removable); THE_PATH = THE_PATH + "/documents/"; }else { Toast.makeText(getApplicationContext(),"NO SD CARD", Toast.LENGTH_LONG).show(); } return THE_PATH;}我们需要帮助的问题是这是三星设备问题还是模拟器不是真实信息?
权限设置为READ和WRITE
我们甚至试图对路径进行硬编码.看了很多关于此主题的SO帖子.文件夹documents / DB name的创建没有问题
解决方法:
首先,产生此答案的信息由@CommonsWare提供
它张贴在这里,以便其他人无法学习,因此我可以获得积分
问题是如何管理三星平板电脑上的存储位置
最重要的是您了解测试是否将SD卡安装在仿真器上无法正常工作的下面是我非常奇怪的代码,用于测试是否已安装SD卡.然后是修改后的代码,可让您管理存储位置
file fi = new file("storage/"); file[] lst = fi.Listfiles();// String top = String.valueOf(lst[1]); String bot = String.valueOf(lst[0]); if(bot.contains("-")){ STORAGE_LOCATION = 1; } if(top.contains("storage/enc_emulated")){ STORAGE_LOCATION = 0; } public String getThePath(){ file removable = ContextCompat.getExternalfilesDirs(this,null) [STORAGE_LOCATION]; if(STORAGE_LOCATION == 1){ THE_PATH = String.valueOf(removable); THE_PATH = THE_PATH + "/documents/"; } if(STORAGE_LOCATION == 0){ THE_PATH = String.valueOf(removable); THE_PATH = THE_PATH + "/INTERNAL/"; Toast.makeText(getApplicationContext(),"NO SD CARD", Toast.LENGTH_LONG).show(); } return THE_PATH;} 总结 以上是内存溢出为你收集整理的android-模拟器与三星设备SD卡存储全部内容,希望文章能够帮你解决android-模拟器与三星设备SD卡存储所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)