StupidBeauty
Read times:1982Posted at: - no title specified

安卓22开发文档翻译:环境,Environment

extends  Object

类概述

提供了用来访问环境变量的手段。

字段

public static  String DIRECTORY_ALARMS

自此版本开始引入 应用编程接口级别8

标准目录 ,其中放置的是,应当显示 在闹钟铃声列表( 不是常规的音乐 )中供用户选择的那些声音文件。 可与 DIRECTORY_MUSIC DIRECTORY_PODCASTS DIRECTORY_NOTIFICATIONS DIRECTORY_RINGTONES 组合使用 ,以将某个声音文件标记为多种类型。

public static  String DIRECTORY_DCIM

自此版本开始引入 应用编程接口级别8

在将此设备挂载为相机时,用来放置照片和视频的传统位置。注意,这只是按照惯例设置的一个顶级公有目录,这个惯例在其它情况下没有什么意义。

public static  String DIRECTORY_DOWNLOADS

自此版本开始引入 应用编程接口级别8

用来放置用户下载的文件的标准目录。注意,这只是按照惯例设置的一个顶级公有目录,妳完全可以将文件下载到妳自己私有目录中的某处。另外还要注意,尽管此处的常量值名为DIRECTORY_DOWNLOADS (复数形式),但是,出于后向兼容方面的考虑,实际的文件名并非是复数的。

public static  String DIRECTORY_MUSIC

自此版本开始引入 应用编程接口级别8

标准目录 ,其中放置的是,应当出现在用户的常规音乐列表中的声音文件。 可与 DIRECTORY_PODCASTS DIRECTORY_NOTIFICATIONS DIRECTORY_ALARMS DIRECTORY_RINGTONES 组合使用,以将某个声音文件标记为多种类型。

public static  String DIRECTORY_RINGTONES

自此版本开始引入 应用编程接口级别8

标准目录 ,其中放置的是,应当出现 在用户待选的铃声列表( 不是作为常规音乐 )中的那些声音文件。 可与 DIRECTORY_MUSIC DIRECTORY_PODCASTS DIRECTORY_NOTIFICATIONS DIRECTORY_ALARMS 组合使用, 以将某个声音文件标记为多种类型。

公有方法

public static  File getDataDirectory  ()

自此版本开始引入 应用编程接口级别1

返回用户的数据目录。

public static  File getExternalStorageDirectory  ()

自此版本开始引入 应用编程接口级别1

返回 主外部存储 目录。 这个目录当前不一定可用,因为: 它可能被用户挂载到电脑上了;可能 从当前设备中拔除了;或者 ,可能发生了其它问题。 妳可以使用 getExternalStorageState() 来得知它的当前状态。

注意 不要纠结于此处的 "外部"字眼 这个目录 ,换个角度来看待更合适,可以将它看作媒体/共享存储 它是一个储存着海量数据的文件系统,并且 是被所有应用程序共享的(不要求权限)。传 统上,它是一个 SD 卡,但是呢, 它也可能被实现为一个内置的存储空间, 与受保护的内部存储相区分,并且 可以被挂载到电脑上成为一个文件系统。

在拥有多个用户(参考 UserManager )的设备上,每个用户都有它自己的受隔离的外部存储。应用程序只能 够访问到它们正在 以其身份 运行 的那个用户的外部存储。

在那些拥有多个"外部"存储目录的设备上,这个目录代表着用户与之交互的“首要”外部存储。

应用程序 不应当直接使用这个顶级目录, 以免污染了用户的顶级命名空间。应用程序自身 的任何私有文件,都应当放置到由 Context.getExternalFilesDir 所返回的目录里,系统 会在应用程序被卸载时删除该目录。其它 的共享文件呢,应当被放置在由 getExternalStoragePublicDirectory(String) 所返回的某个目录里。

自从 KITKAT 开始 ,如果 妳的应用程序只需要存储内部数据的话,那么,请考虑使用 getExternalFilesDir(String) getExternalCacheDir() 它们在进行读写时不需要任何权限。

这个路径可能会随着平台的版本变化而变化,所以,在应用程序当中应当只存储相对路径。

以下是一段示例代码,用来监视外部存储的状态:

BroadcastReceiver mExternalStorageReceiver ;

boolean mExternalStorageAvailable = false ;

boolean mExternalStorageWriteable = false ;

void updateExternalStorageState () {

String state = Environment . getExternalStorageState ();

if ( Environment . MEDIA_MOUNTED . equals ( state )) {

mExternalStorageAvailable = mExternalStorageWriteable = true ;

} else if ( Environment . MEDIA_MOUNTED_READ_ONLY . equals ( state )) {

mExternalStorageAvailable = true ;

mExternalStorageWriteable = false ;

} else {

mExternalStorageAvailable = mExternalStorageWriteable = false ;

}

handleExternalStorageState ( mExternalStorageAvailable ,

mExternalStorageWriteable );

}

void startWatchingExternalStorage () {

mExternalStorageReceiver = new BroadcastReceiver () {

@Override

public void onReceive ( Context context , Intent intent ) {

Log . i ( "test" , "Storage: " + intent . getData ());

updateExternalStorageState ();

}

};

IntentFilter filter = new IntentFilter ();

filter . addAction ( Intent . ACTION_MEDIA_MOUNTED );

filter . addAction ( Intent . ACTION_MEDIA_REMOVED );

registerReceiver ( mExternalStorageReceiver , filter );

updateExternalStorageState ();

}

void stopWatchingExternalStorage () {

unregisterReceiver ( mExternalStorageReceiver );

}

参考

public static  File getExternalStoragePublicDirectory  ( String  type)

自此版本开始引入 应用编程接口级别8

获取用来存储特定类型的文件的某个顶级公有外部存储目录。这是用户通常用来存储及管理它们自己的文件的地方,所以,妳应当小心行事,确保不要删除掉它们的文件,或者破坏了它们自己的组织条理。

在拥有多个用户(参考 UserManager )的设备上,每个用户都有它自己的受隔离的外部存储。应用程序只能 够访问到它们正在 以其身份 运行 的那个用户的外部存储。

以下是一段示例代码,用来处理公有外部存储中的一张图片:

void createExternalStoragePublicPicture () {

// 创建 一个路径,我们将在位于用户的公有图片目录中的这个路径里放置图片。

// 注意 ,请小心行事,因为用户通常也会将文件放置在这里。

// 对于 由应用程序所拥有的图片及 其它媒体文件 ,请考虑使用

// Context.getExternalMediaDir().

File path = Environment . getExternalStoragePublicDirectory (

Environment . DIRECTORY_PICTURES );

File file = new File ( path , "DemoPicture.jpg" );

try {

// 确保图片目录存在

path . mkdirs ();

// 狠简单的代码,从应用程序的资源中复制一张图片到外部文件中去。

// 注意 ,这砣代码不会做错误处理,并且假设这张图片狠小 ( 不尝试按照分块来复制它 ) 。注意 ,如果外部存储目前不是处于已挂载状态,

// 那么 ,这砣代码会失败。

InputStream is = getResources (). openRawResource ( R . drawable . balloons );

OutputStream os = new FileOutputStream ( file );

byte [] data = new byte [ is . available ()];

is . read ( data );

os . write ( data );

is . close ();

os . close ();

// 向媒体扫描器告知这个新文件的存在,以确保,用户立即能够看到 它。

MediaScannerConnection . scanFile ( this ,

new String [] { file . toString () }, null ,

new MediaScannerConnection . OnScanCompletedListener () {

public void onScanCompleted ( String path , Uri uri ) {

Log . i ( "ExternalStorage" , "Scanned " + path + ":" );

Log . i ( "ExternalStorage" , "-> uri=" + uri );

}

});

} catch ( IOException e ) {

// 无法创建文件,比如 说外部存储目前不是处于挂载状态。

Log . w ( "ExternalStorage" , "Error writing " + file , e );

}

}

void deleteExternalStoragePublicPicture () {

// 在用户的公有图片目录中创建一个路径,表示的是我们会用来存放照片的位置,然后删除该文件。

// 如果外部存储当前 未被挂载,则,此函数会失败。

File path = Environment . getExternalStoragePublicDirectory (

Environment . DIRECTORY_PICTURES );

File file = new File ( path , "DemoPicture.jpg" );

file . delete ();

}

boolean hasExternalStoragePublicPicture () {

// 创建一个指向用户的公有图片目录中某个文件的路径,表示的是我们会用来存放照片的位置,然后检查该文件是否存在。

// 如果外部存储当前 未被挂载,则我们认为该图片不存在。

File path = Environment . getExternalStoragePublicDirectory (

Environment . DIRECTORY_PICTURES );

File file = new File ( path , "DemoPicture.jpg" );

return file . exists ();

}

参数

type

要返回的存储目录的类型。应当 DIRECTORY_MUSIC DIRECTORY_PODCASTS DIRECTORY_RINGTONES DIRECTORY_ALARMS DIRECTORY_NOTIFICATIONS DIRECTORY_PICTURES DIRECTORY_MOVIES DIRECTORY_DOWNLOADS DIRECTORY_DCIM 中的一个。 不可以为空(null)。

返回
  • •. 返回该目录对应的 File路径 。注意 ,这个目录不一定存在,因此, 在使用它之前,必须确保它存在,例如调用 File.mkdirs()

public static  String getExternalStorageState  ( File  path)

自此版本开始引入 应用编程接口级别21

返回提供了指定路径的存储设备的当前状态。

返回

public static  String getExternalStorageState  ()

自此版本开始引入 应用编程接口级别1

返回首要的“外部”存储设备的当前状态。

返回
参考

未知美人

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands

 
Recent comments
2017年4月~2019年4月垃圾短信排行榜Posted at:Thu Sep 26 04:51:48 2024
Qt5.7文档翻译:QWebEngineCookieStore类,QWebEngineCookieStore ClassPosted at:Fri Aug 11 06:50:35 2023盲盒kill -9 18289 Grebe.20230517.211749.552.mp4