当前位置:首页 » 安卓系统 » androidstorage

androidstorage

发布时间: 2022-09-20 00:40:16

‘壹’ 求助,关于android开发中使用Storage的问题

sae-local是服务器环境的支持包,也就是说这个包的运行依赖于服务器的jvm,放在android环境里当然是不行的。
需求用需要在
建立java工程,利用sae包处理客户端的上传请求,android通过http post方式上传文件,路径是这样的
android --> http post stream --> server --> storage

‘贰’ 如何区分Android storage USB memory和 Sdcard

由于现在做平板开发,必须得分出这2个存储
USB memory和 sdcard
一般就看Enviroment类的源码
public static File getExternalStorageDirectory() {
// Try to be smarter
// Return EXTERNAL_STORAGE_DIRECTORY_SD if SD card is ready
// Return EXTERNAL_STORAGE_DIRECTORY_UDISK if SD card is absent but udisk is ready
// Return EXTERNAL_STORAGE_DIRECTORY_SD if both sd card and udisk are not ready
String propSD = SystemProperties.get("EXTERNAL_STORAGE_STATE_SD", MEDIA_REMOVED);
String propUDISK = SystemProperties.get("EXTERNAL_STORAGE_STATE_UDISK", MEDIA_REMOVED);
String propEXTSD = SystemProperties.get("EXTERNAL_STORAGE_STATE_EXTSD", MEDIA_REMOVED);
if (propSD.equals(MEDIA_MOUNTED) || propSD.equals(MEDIA_MOUNTED_READ_ONLY)) {
return EXTERNAL_STORAGE_DIRECTORY_SD;
} else if (propUDISK.equals(MEDIA_MOUNTED) || propUDISK.equals(MEDIA_MOUNTED_READ_ONLY)) {
return EXTERNAL_STORAGE_DIRECTORY_UDISK;
} else if (propEXTSD.equals(MEDIA_MOUNTED) || propEXTSD.equals(MEDIA_MOUNTED_READ_ONLY)) {
return EXTERNAL_STORAGE_DIRECTORY_EXTSD;} else {return EXTERNAL_STORAGE_DIRECTORY_SD;}}然后Environment.getExternalStorageDirectory().getAbsolutePath()
看返回的是"/sdcard"还是"/udisk"既可。
如果你直接指定这2个路径,去得到里面的文件时,是错误的!

‘叁’ 安卓系统的storage文件夹是什么能删掉吗

storage就是手机的rom即(手机自带内存)
在手机里或同步电脑后,资源管理的根目录就可以看到这个storage的文件夹了.

‘肆’ 安卓系统,storage文件夹只有500多m,但是在设置的储存里显示全部空间占用有1.1g。

会有临时数据在隐藏目录下的情况,比如.开头的文件夹只能是有Root权限的手机用R.E.管理器访问的。

‘伍’ android 怎么从storage中获取文件数据

sae既然封装了存储路径 而且这个路径还不在主机服务器上
你就不能直接用http协议直接访问storage中的文件
但是你可以通过一个php页面把storage中的文件读出来在发送给前端

getshuju.php

<?php
echo file_get_contents('saestor://'.$domain.'/'.$filename);

page.html

$.ajax({
url:'getshuju.php'

‘陆’ Android外部存储ExternalStorage

内存(emory)

内部存储(ternalStorage)

1)storage或者mnt文件夹下

2) 通过:

Environment.getExternalStorageDirectory()

可以看到外部存储的位置

3) 公有目录(DCIM、DOWNLOAD等),要使用需要申请权限。

4) 私有目录(Android/data/应用包名),只能被当前应用访问。

String path= Environment.getExternalStorageDirectory().getAbsolutePath() +"/Mytest.txt";

try {

if (!file.exists()) {

file.createNewFile();

    }

}catch (IOException e) {

e.printStackTrace();

}

try {

if (!file.exists()) {

file.createNewFile();

    }

FileOutputStream fos=new FileOutputStream(path,true);

    String str=infoEdt.getText().toString();

    fos.write(str.getBytes());//以字节流的方式写入

}catch (IOException e) {

e.printStackTrace();

}

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

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

其中第二条权限可能会报错,这时候解决办法是:

在报错的地方添加

tools:ignore="ProtectedPermissions"

同时在manifest标签里添加;

 xmlns:tools="http://schemas.android.com/tools"

FileInputStream fis =new FileInputStream(path);     

byte[] b =new byte[1024];

int len = fis.read(b);//读取fis字节流,将其存储在字节数组b中,并返回数组的长度(字节的个数)

String str2=new String(b,0,len);

txt.setText(str2);

注意:1、从外部存储读取文件不需要权限

           2、Android6.0以上对外部存储(内存卡)共有目录的读写需要运行时权限(允许访问内存卡),这个权限需要用户手动开启,只在AndroidManifest.xml中申请是没用的。

int permissionContextCompet.checkSelfPermission(context,permission)  检查是否具有权限

第一个参数,环境上下文(this),第二个参数,权限名,Manifest.permission.WRITE_EXTERNAL_STORAGE,返回的是一个int类型的变量,将其与PackageManger.PERMISSION_GRANTED比较,等于则说明有权限,不等于的话则要动态申请权限:

if(permission!= PackageManager.PERMISSION_GRANTED){

//没有权限,则要申请权限

}

ActivityCompet.reaquestPermissions(activity,permission,code) 请求权限,第一个参数:activity 第二个参数:String类型的数组,里面装了各种权限, 当有多项权限需要申请的时候可以一起申请,第三个参数:一个int类型的请求码,动态申请权限的时候会触发onRequestPermissionsResult()方法,如果在申请的过程中有什么需要做的操作可以定义在该方法中,第三个参数请求吗可以帮助知道是那个权限的申请触发了这个方法

int permission=ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);

    if(permission!= PackageManager.PERMISSION_GRANTED){

        ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},1);

    }

}

@Override

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

super.onRequestPermissionsResult(requestCode, permissions, grantResults);

    if(requestCode==1){

//当前没有什么要处理的

    }

}

通过:Environment.getExternalStorageDirectory()获取到的是根目录,通过在后面拼接目录名称,可以访问到公有目录

要获取外部存储目录的私有目录,可以通过:

1)Context.getExternalFilesDir(String type)获取到SDCard/Android/data/包名/files/目录,这个目录下一般存放一些需要长时间保存的数据。这个参数是用于指定文件夹类型的(图片,音乐,视频...)。

2)Context。getExternalCacheDir()获取到SDCard/Android/data/包名/cache/目录,这个目录下面一般存放一些临时的缓存性的数据。

‘柒’ 求助,关于android开发中使用Storage的问题

只用一种,按钮等元件的大小就完全跟着屏幕参数走了,火柴盒那么大小的按钮固然不美观,但比药片还小的按钮才真正要命:因为用户基本点不准

‘捌’ Android得到的真机的SD卡路径是 /storage/emulated/0/,该怎么解决

这是引用路径,别担心。
打开你的ddms File Explorer
你可以在你的mnt/sdcard后面看到一列info列
里面写的就是类似于/storage/emulated/0/这个东西
然后你可以在你的File Explorer中找到storage文件夹,下面就会有emulated,然后下面会有0
其实都是一样的

热点内容
物资数据库 发布:2025-01-11 21:00:24 浏览:853
javastop 发布:2025-01-11 21:00:20 浏览:30
机械手臂用什么编程 发布:2025-01-11 20:55:32 浏览:591
买钓箱要哪些配置就够了 发布:2025-01-11 20:24:23 浏览:510
防脚本取色 发布:2025-01-11 20:15:17 浏览:638
为什么庄周活动安卓没开始 发布:2025-01-11 20:14:23 浏览:461
我的世界花雨庭国际服服务器地址 发布:2025-01-11 20:13:27 浏览:719
c数据导入数据库 发布:2025-01-11 20:07:55 浏览:829
可以上传片 发布:2025-01-11 20:07:55 浏览:793
outlook服务器邮件怎么找 发布:2025-01-11 20:06:12 浏览:96