第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Android 各版本 SD卡文件讀寫變化及其音樂(lè)播放

標(biāo)簽:
Android

1.Android6.0 平台应用获取外置sd卡路径 

Android6.0 上会根据卡的种类和卡的挂载状态来动态生成挂载路径,因此不建议大家在按照以前的方法获取外置SD卡或者usbotg的路径,建议按照以下方法来获取:

[代码]xml代码:

StorageManager   mStorageManager = StorageManager.from(context);

finalList vols = mStorageManager.getVolumes();

VolumeInfo   sdcardVolume = null ;

for(VolumeInfo   vol : vols){

  if(vol.getDisk() != null && vol.getDisk().isSd())sdcardVolume = vol;

 

//如果需要获取usbotg的路径,则改为

   // if(vol.getDisk() != null &&vol.getDisk().isUsb()) usbotgVolume = vol;

}

 

if(sdcardVolume!= null) {

   String sdcardPath = sdcardVolume.getPath()==null ? null :sdcardVolume.getPath().toString();

   String sdcardState = sdcardVolume.getEnvironmentForState(sdcardVolume.getState());

   if(sdcardState.equals(Environment.MEDIA_MOUNTED) && sdcardPath != null){

        //外置SD卡已挂载,且路径有效

        // sdcardPath 外置SD卡的路径

   }      

}

 

2.Android6.0 storage目录sd卡存储的路径创建

之前一直很疑惑,android6.0上sd卡挂载storage下的sd卡路径是什么时候创建的。

因为挂载sd卡的PublicVolume,负责创建mount路径,然后挂载。

接着会创建几个fuse路径,如下:

1./mnt/runtime/default/

2./mnt/runtime/read/

3./mnt/runtime/write/

然后会把这个mount的路径fuse到上面这几个路径。

但是一直没有storage/下sd卡路径的创建,而在PublicVolume下doMount函数也只有设置mPath为storage/....确没有创建这个路径。

后来终于在init.rc中发现下面这句

[代码]xml代码:

on post-fs

    start logd

 

    #add for amt

    chmod 0755 /amt

    # once everything is setup, no need to modify /

    mount rootfs rootfs / ro remount

    # Mount shared so changes propagate into child namespaces

    mount rootfs rootfs / shared rec

    # Mount default storage into root namespace

    mount none /mnt/runtime/default /storage slave bind rec

3.Android 4.4 SD卡文件读写变化:

Context.getExternalFilesDirs(), 返回多个sd卡的该应用私有数据区的files目录 

[代码]xml代码:

/storage/sdcard0/Android/data/<包名>/files

/storage/sdcard1/Android/data/<包名>/files

Context.getExternalCacheDirs(), 返回多个sd卡下该应用私有数据库的缓存目录

[代码]xml代码:

/storage/sdcard0/Android/data/<包名>/caches

/storage/sdcard1/Android/data/<包名>/caches

Context.getObbDirs(), 返回多个sd卡下obb目录下的私有数据

[代码]xml代码:

/storage/sdcard0/Android/obb/<包名>

/storage/sdcard1/Android/obb/<包名>

目前这些api均为hide,需通过反射调用

对读写权限的修改

    如果应该仅需读取sd卡下该应用私有数据的数据,则不需要申请读写权限(WRITE_EXTERNAL_STORAGE 、READ_EXTERNAL_STORAGE )

如果需要读取sd卡其他目录,则需声明读sd卡权限

如果需要写入sd卡其他目录,则需声明写sd卡权限

对于存在多个sd卡的情况,仅对主卡、及每张卡的私有数据区下的文件有读写权限,对其他卡没有写权限(之前厂商实现中,对每张sd卡均有读写权限)

  1.在内置卡进行写操作【android.permission.WRITE_EXTERNAL_STORAGE 的权限用来设置了内置sd卡的写权限,如果在manifest中只是配置了这个权限,那个应用只能在内置sd卡中进行写操作】

或在内置卡进行读操作【<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>该程序可以读取设备外部存储空间(内置SDcard和外置SDCard)的文件,如果您的App已经添加了“WRITE_EXTERNAL_STORAGE ”权限 ,则就没必要添加读的权限了,写权限已经包含了读权限了。】

2.然后再手机内存卡中:Android-->data中设置一个文件夹,然后再文件夹中放置要存储的音乐文件;

3.Android工程里,设置路径是: "/storage/sdcard0/Android/data/HandlerActivity/goldfallen.mp3";



4.在工程里播放音乐:

[代码]xml代码:

//实例化MediaPlayer

MediaPlayer player = MediaPlayer.create(this,R.raw.test);

//开始播放

player.start();

5.在文件夹中设置播放音乐

1)实例化一个MediaPlayer

2)调用setDataSource()方法设置播放文件路径

3)先调用prepare(),然后调用start()方法播放

[代码]xml代码:

//实例化MediaPlayer

MediaPlayer mp = new MediaPlayer();

//播放路径

String path = “/sdcard/test.mp3”;

//为MediaPlayer设置数据源

mp.setDataSource(path);

//准备

mp.prepare();

//播放

mp.start();

6.从网络中播放

方法一

1)创建URI实例

2)根据一个MediaPlayer实例,使用MediaPlayer的静态方法create(),通过传递URI参数完成

3)调用start()方法开始播放

[代码]xml代码:

//播放路径

String path = “http://ms1.m.mop.com/22/111.mp3”;

//将字符串URI解析为URI实例

Uri uri = Uri.parse(path);

//实例化MediaPlayer

MediaPlayer player = MediaPlayer.create(this,uri);

//播放

player.start();

 

原文链接:http://www.apkbus.com/blog-792467-60514.html

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消