国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android獲取本機各種類型文件列表(音樂、視頻,作為字節(jié)跳動面試官

這篇具有很好參考價值的文章主要介紹了Android獲取本機各種類型文件列表(音樂、視頻,作為字節(jié)跳動面試官。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

獲取視頻列表

/**

  • 獲取本機視頻列表
  • @return
    */
    public List getVideos() {

List videos = new ArrayList();

Cursor c = null;
try {
// String[] mediaColumns = { “_id”, “_data”, “_display_name”,
// “_size”, “date_modified”, “duration”, “resolution” };
c = mContentResolver.query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Video.Media.DEFAULT_SORT_ORDER);
while (c.moveToNext()) {
String path = c.getString(c.getColumnIndexOrThrow(MediaStore.Video.Media.DATA));// 路徑
if (!FileUtils.isExists(path)) {
continue;
}

int id = c.getInt(c.getColumnIndexOrThrow(MediaStore.Video.Media._ID));// 視頻的id
String name = c.getString(c.getColumnIndexOrThrow(MediaStore.Video.Media.DISPLAY_NAME)); // 視頻名稱
String resolution = c.getString(c.getColumnIndexOrThrow(MediaStore.Video.Media.RESOLUTION)); //分辨率
long size = c.getLong(c.getColumnIndexOrThrow(MediaStore.Video.Media.SIZE));// 大小
long duration = c.getLong(c.getColumnIndexOrThrow(MediaStore.Video.Media.DURATION));// 時長
long date = c.getLong(c.getColumnIndexOrThrow(MediaStore.Video.Media.DATE_MODIFIED));//修改時間

Video video = new Video(id, path, name, resolution, size, date, duration);
videos.add(video);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (c != null) {
c.close();
}
}
return videos;
}

其中,視頻的bean類Video代碼為:

public class Video {
private int id = 0;
private String path = null;
private String name = null;
private String resolution = null;// 分辨率
private long size = 0;
private long date = 0;
private long duration = 0;

public Video(int id, String path, String name, String resolution, long size, long date, long duration) {
this.id = id;
this.path = path;
this.name = name;
this.resolution = resolution;
this.size = size;
this.date = date;
this.duration = duration;
}

… //此處省略setter和getter方法

通過本地視頻id獲取視頻縮略圖

// 獲取視頻縮略圖
public Bitmap getVideoThumbnail(int id) {
Bitmap bitmap = null;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inDither = false;
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
bitmap = MediaStore.Video.Thumbnails.getThumbnail(mContentResolver, id, MediaStore.Images.Thumbnails.MICRO_KIND, options);
return bitmap;
}

上面獲取視頻列表的方法中,Video對象中有一個屬性是id,通過傳入這個id可以獲取到視頻縮略圖的Bitmap對象。

獲取本機所有圖片文件夾

/**

  • 得到圖片文件夾集合
    */
    public List getImageFolders() {
    List folders = new ArrayList();
    // 掃描圖片
    Cursor c = null;
    try {
    c = mContentResolver.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null,
    MediaStore.Images.Media.MIME_TYPE + "= ? or " + MediaStore.Images.Media.MIME_TYPE + “= ?”,
    new String[]{“image/jpeg”, “image/png”}, MediaStore.Images.Media.DATE_MODIFIED);
    List mDirs = new ArrayList();//用于保存已經(jīng)添加過的文件夾目錄
    while (c.moveToNext()) {
    String path = c.getString(c.getColumnIndex(MediaStore.Images.Media.DATA));// 路徑
    File parentFile = new File(path).getParentFile();
    if (parentFile == null)
    continue;

String dir = parentFile.getAbsolutePath();
if (mDirs.contains(dir))//如果已經(jīng)添加過
continue;

mDirs.add(dir);//添加到保存目錄的集合中
ImgFolderBean folderBean = new ImgFolderBean();
folderBean.setDir(dir);
folderBean.setFistImgPath(path);
if (parentFile.list() == null)
continue;
int count = parentFile.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String filename) {
if (filename.endsWith(“.jpeg”) || filename.endsWith(“.jpg”) || filename.endsWith(“.png”)) {
return true;
}
return false;
}
}).length;

folderBean.setCount(count);
folders.add(folderBean);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (c != null) {
c.close();
}
}

return folders;
}

其中,圖片文件夾的bean類ImgFolderBean代碼為:

public class ImgFolderBean {
/*當(dāng)前文件夾的路徑/
private String dir;
/*第一張圖片的路徑,用于做文件夾的封面圖片/
private String fistImgPath;
/*文件夾名/
private String name;
/*文件夾中圖片的數(shù)量/
private int count;

public ImgFolderBean(String dir, String fistImgPath, String name, int count) {
this.dir = dir;
this.fistImgPath = fistImgPath;
this.name = name;
this.count = count;
}

… //此處省略setter和getter方法
}

獲取圖片文件夾下的圖片路徑的集合

/**

  • 通過圖片文件夾的路徑獲取該目錄下的圖片
    */
    public List getImgListByDir(String dir) {
    ArrayList imgPaths = new ArrayList<>();
    File directory = new File(dir);
    if (directory == null || !directory.exists()) {
    return imgPaths;
    }
    File[] files = directory.listFiles();
    for (File file : files) {
    String path = file.getAbsolutePath();
    if (FileUtils.isPicFile(path)) {
    imgPaths.add(path);
    }
    }
    return imgPaths;
    }

獲取本機已安裝應(yīng)用列表

/**

  • 獲取已安裝apk的列表
    */
    public List getAppInfos() {

ArrayList appInfos = new ArrayList();
//獲取到包的管理者
PackageManager packageManager = mContext.getPackageManager();
//獲得所有的安裝包
List installedPackages = packageManager.getInstalledPackages(0);

//遍歷每個安裝包,獲取對應(yīng)的信息
for (PackageInfo packageInfo : installedPackages) {

AppInfo appInfo = new AppInfo();

appInfo.setApplicationInfo(packageInfo.applicationInfo);
appInfo.setVersionCode(packageInfo.versionCode);

//得到icon
Drawable drawable = packageInfo.applicationInfo.loadIcon(packageManager);
appInfo.setIcon(drawable);

//得到程序的名字
String apkName = packageInfo.applicationInfo.loadLabel(packageManager).toString();
appInfo.setApkName(apkName);

//得到程序的包名
String packageName = packageInfo.packageName;
appInfo.setApkPackageName(packageName);

//得到程序的資源文件夾
String sourceDir = packageInfo.applicationInfo.sourceDir;
File file = new File(sourceDir);
//得到apk的大小
long size = file.length();
appInfo.setApkSize(size);

System.out.println(“---------------------------”);
System.out.println(“程序的名字:” + apkName);
System.out.println(“程序的包名:” + packageName);
System.out.println(“程序的大小:” + size);

//獲取到安裝應(yīng)用程序的標(biāo)記
int flags = packageInfo.applicationInfo.flags;

if ((flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
//表示系統(tǒng)app
appInfo.setIsUserApp(false);
} else {
//表示用戶app
appInfo.setIsUserApp(true);
}

if ((flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0) {
//表示在sd卡
appInfo.setIsRom(false);
} else {
//表示內(nèi)存
appInfo.setIsRom(true);
}

appInfos.add(appInfo);
}
return appInfos;
}

其中,安裝包信息的bean類AppInfo代碼為:

public class AppInfo {
private ApplicationInfo applicationInfo;
private int versionCode = 0;
/**

  • 圖片的icon
    */
    private Drawable icon;

/**

  • 程序的名字
    */
    private String apkName;

/**

  • 程序大小
    */
    private long apkSize;

/**

  • 表示到底是用戶app還是系統(tǒng)app
  • 如果表示為true 就是用戶app
  • 如果是false表示系統(tǒng)app
    */
    private boolean isUserApp;

/**

  • 放置的位置
    */
    private boolean isRom;

/**

  • 包名
    */
    private String apkPackageName;

… //此處省略setter和getter方法

獲取文檔、壓縮包、apk安裝包等

自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進入阿里一直到現(xiàn)在。

深知大多數(shù)初中級安卓工程師,想要提升技能,往往是自己摸索成長,但自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!

因此收集整理了一份《2024年最新Android移動開發(fā)全套學(xué)習(xí)資料》送給大家,初衷也很簡單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時減輕大家的負擔(dān)。
安卓如何獲取music同級別文件夾文件,2024年程序員學(xué)習(xí),android,音視頻
安卓如何獲取music同級別文件夾文件,2024年程序員學(xué)習(xí),android,音視頻
安卓如何獲取music同級別文件夾文件,2024年程序員學(xué)習(xí),android,音視頻
安卓如何獲取music同級別文件夾文件,2024年程序員學(xué)習(xí),android,音視頻

由于文件比較大,這里只是將部分目錄截圖出來,每個節(jié)點里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實戰(zhàn)項目、講解視頻
如果你覺得這些內(nèi)容對你有幫助,可以添加下面V無償領(lǐng)取?。▊渥ndroid)
安卓如何獲取music同級別文件夾文件,2024年程序員學(xué)習(xí),android,音視頻

最后

總而言之,成功是留給準(zhǔn)備好的人的。無論是參加什么面試,都要做好充足的準(zhǔn)備,注意好面試的禮儀和穿著,向面試官表現(xiàn)出自己的熱忱與真誠就好。即使最后沒有過關(guān),也要做好經(jīng)驗的總結(jié),為下一次面試做好充足準(zhǔn)備。

這里我為大家準(zhǔn)備了一些我在面試后整理的面試專題資料,除了面試題,還總結(jié)出了互聯(lián)網(wǎng)公司Android程序員面試涉及到的絕大部分面試題及答案,并整理做成了文檔,以及系統(tǒng)的進階學(xué)習(xí)視頻資料,免費分享給大家,希望能幫助到你面試前的復(fù)習(xí),且找到一個好的工作,也節(jié)省大家在網(wǎng)上搜索資料的時間來學(xué)習(xí)。

畢竟不管遇到什么樣的面試官,去面試首先最主要的就是自己的實力,只要實力夠硬,技術(shù)夠強,就不怕面試拿不到offer!

想要面試順通嘛,趕緊領(lǐng)取下面的面試資料為之后的面試做足準(zhǔn)備叭!這里提前祝各位面試成功!

資料領(lǐng)取方式:??Android架構(gòu)設(shè)計

安卓如何獲取music同級別文件夾文件,2024年程序員學(xué)習(xí),android,音視頻

安卓如何獲取music同級別文件夾文件,2024年程序員學(xué)習(xí),android,音視頻

為什么某些人會一直比你優(yōu)秀,是因為他本身就很優(yōu)秀還一直在持續(xù)努力變得更優(yōu)秀,而你是不是還在滿足于現(xiàn)狀內(nèi)心在竊喜!希望讀到這的您能點個小贊和關(guān)注下我,以后還會更新技術(shù)干貨,謝謝您的支持!

先最主要的就是自己的實力,只要實力夠硬,技術(shù)夠強,就不怕面試拿不到offer!

想要面試順通嘛,趕緊領(lǐng)取下面的面試資料為之后的面試做足準(zhǔn)備叭!這里提前祝各位面試成功!

資料領(lǐng)取方式:??Android架構(gòu)設(shè)計

[外鏈圖片轉(zhuǎn)存中…(img-sNRE6syB-1711171591646)]

[外鏈圖片轉(zhuǎn)存中…(img-eXje5M5q-1711171591646)]

為什么某些人會一直比你優(yōu)秀,是因為他本身就很優(yōu)秀還一直在持續(xù)努力變得更優(yōu)秀,而你是不是還在滿足于現(xiàn)狀內(nèi)心在竊喜!希望讀到這的您能點個小贊和關(guān)注下我,以后還會更新技術(shù)干貨,謝謝您的支持!

安卓如何獲取music同級別文件夾文件,2024年程序員學(xué)習(xí),android,音視頻文章來源地址http://www.zghlxwxcb.cn/news/detail-848884.html

到了這里,關(guān)于Android獲取本機各種類型文件列表(音樂、視頻,作為字節(jié)跳動面試官的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • uniapp - App 平臺下獲取用戶本機已安裝的應(yīng)用列表app,可讀取某個應(yīng)用的全部信息(應(yīng)用名稱 / 圖標(biāo) / 是否系統(tǒng)軟件 / 安裝包 / 簽名等軟件信息)超詳細注釋示例源代碼教程

    如題所示,本文提供 uniapp 編譯為 APP 平臺下,如何獲取用戶手機內(nèi)的所有應(yīng)用(并且拿到應(yīng)用名字/圖標(biāo)等信息), 你可以直接復(fù)制本文提供的方法,稍微改改就能移植到你自己的項目中去。 代碼干凈整潔,注釋詳細。 Android的應(yīng)用管理主要是通過PackageManagerService來完成的。

    2024年02月11日
    瀏覽(21)
  • nodejs接口聯(lián)動獲取req的各種類型數(shù)據(jù),搭建可視化流程引擎平臺

    nodejs接口聯(lián)動獲取req的各種類型數(shù)據(jù),搭建可視化流程引擎平臺

    考慮跨域等性能,簡易的工程化,采用express框架 接下來我們就來安裝 body-parser express的中間件 body-parser 解析客戶端請求的body中的內(nèi)容,JSON編碼處理和url編碼處理 文件上傳看我之前的博客內(nèi)容 http://localhost:8080/?age=1 http://localhost:8080/12/url 當(dāng)然也可以進行組合發(fā)送 鏈接數(shù)據(jù)庫

    2024年02月11日
    瀏覽(21)
  • Android中獲取手機SIM卡的各種信息

    ?通過以下工具類方法可以獲取到手機SIM的各種信息數(shù)據(jù)?。?!

    2024年02月10日
    瀏覽(21)
  • uniapp實戰(zhàn)仿寫網(wǎng)易云音樂(三)—視頻頁面(scroll-view組件實現(xiàn)橫線滑動,mescroll-uni實現(xiàn)視頻列表,向下滑動刷新當(dāng)前頁面)

    uniapp實戰(zhàn)仿寫網(wǎng)易云音樂(三)—視頻頁面(scroll-view組件實現(xiàn)橫線滑動,mescroll-uni實現(xiàn)視頻列表,向下滑動刷新當(dāng)前頁面)

    接著上篇文章繼續(xù)完成剩下的部分,本篇文章是完成第二個頁面——視頻頁面的部分,視頻還是沒有做播放的效果,主要是做展示效果。下面附上兩篇文章鏈接,沒看過的同學(xué)可以回頭看看: uniapp實戰(zhàn)仿寫網(wǎng)易云音樂(一)—底部工具欄以及首頁輪播圖swiper的實現(xiàn) uniapp實戰(zhàn)仿寫

    2023年04月25日
    瀏覽(26)
  • C++完成目錄下文件夾和各種類型文件的超時刪除

    最近的一個項目遇到了要刪除過時的一些自己這邊生成的文件 思路就是先找到文件(包括文件夾),然后判斷他們的時間來確定是否刪除文件(文件夾)。 1.CFileFind 類 執(zhí)行本地文件搜索,并且是執(zhí)行 Internet 文件搜索的 CGopherFileFind 和 CFtpFileFind 的基類。 語法: 能使用到的公

    2024年02月07日
    瀏覽(21)
  • Android 獲取手機已安裝的應(yīng)用列表(適配)

    Android 獲取手機已安裝的應(yīng)用列表(適配)

    加上權(quán)限才能獲取到所有的應(yīng)用 低版本的手機 可以用else里邊的方法 也可以用 Intent的action 是:Intent.ACTION_MAIN 這個不要傳錯。 水平有限,如有問題歡迎評論區(qū)留言指正。 如果在高版本上有問題的話建議將 targetSdkVersion設(shè)置成26試試。 關(guān)注我獲取更多知識或者投稿

    2024年02月13日
    瀏覽(23)
  • Android點選下拉列表框選項,獲取選項內(nèi)容

    Android點選下拉列表框選項,獲取選項內(nèi)容

    的作者做的一個項目,通過app來監(jiān)測設(shè)備是否在線狀態(tài),這時就需要實現(xiàn)分別查詢“在線”、“離線”、“全部”三種選項的設(shè)備情況。也就是要能實現(xiàn)根據(jù)在線與否的狀態(tài)來對設(shè)備進行篩選。 要對數(shù)據(jù)表中數(shù)據(jù)進行篩選,經(jīng)常用到下拉列表框來設(shè)定選項,當(dāng)點選不同選項時

    2023年04月08日
    瀏覽(21)
  • Android12 獲取音頻輸出列表&設(shè)置音頻輸出通道

    有個需求是APP端能夠獲取所有音頻輸出列表,研究了很長時間源碼,發(fā)現(xiàn)只有這個API合適。 這個API能夠獲取到設(shè)備上所有可用的輸出,且APP可以調(diào)用。 需要在framework層修改,找一個Manager或者自己寫一個Manager,添加以下API方法。

    2024年02月16日
    瀏覽(31)
  • Android 12 Wifi 開發(fā)(獲取列表、連接、斷開連接)

    獲取Wifi列表: 掃描(這個方法早在Android 9.0 就被棄用), 不過如果不調(diào)用的話是沒法及時獲取Wifi列表的廣播的。 (不需要也能正常獲取,沒有延遲,經(jīng)實驗毫無區(qū)別) 創(chuàng)建廣播并接收: 配置并連接( 無系統(tǒng)簽名 ): 配置并連接( 有系統(tǒng)簽名 ): 斷開連接(無系統(tǒng)簽名

    2024年02月03日
    瀏覽(24)
  • Flutter Android & IOS 獲取通訊錄聯(lián)系人列表

    1.在 pubspec.yaml 文件中添加 contacts_service 和 permission_handler 插件的依賴: 2.在你的 Dart 代碼中,導(dǎo)入 contacts_service 插件: 3.權(quán)限請求: Android 需要在 android/app/src/main/AndroidManifest.xml 文件中添加以下內(nèi)容: IOS 需要在 ios/Runner/Info.plist 文件中添加以下內(nèi)容: 在ios系統(tǒng)上如果進行

    2024年02月08日
    瀏覽(42)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包