當前位置:首頁 » 安卓系統 » androidmediascanner

androidmediascanner

發布時間: 2023-09-05 02:29:43

Ⅰ android 圖庫刷新不了怎麼辦 手機內存卡裡面新放進的圖片,圖庫裡面顯示不出來,懷疑是刷新不了,怎麼辦

Android手機圖庫的圖片不顯示,刷新失敗等錯誤,多數情況下都是圖庫或者相冊這個應用由於某些原因導致出錯了,導致無法預覽,刷新。

以下是解決方法:

  1. 打開手機的圖庫,可以看見圖庫不顯示任何圖片,提示沒有圖片/視頻,只有一個大大的相機圖標

  2. 進入文件管理-SD卡-images以及其他存放有圖片的文件夾可以發現手機上的圖片都沒有損壞,可正常顯示

  3. 使用手機數據線將手機和電腦連接,選擇打開USB存儲

  4. 勾選顯示隱藏文件夾,找到一個叫做.nomedia的文件夾,刪除,部分第三方刷機包ROM可能內置這個文件夾,以此來保護用戶的隱私不顯示在手機上

  5. 關閉USB存儲,拔掉數據線,打開手機-設置-應用-全部-圖庫-清除數據

  6. 打開第三方安全軟體-自啟管家-系統組件-圖庫,如果圖庫的狀態是禁止自啟,請取消圖庫的禁止自啟狀態,恢復圖庫的自啟行為

  7. 重啟手機,圖庫的內容就可以正常顯示了

Ⅱ Android Framework media providers 隨筆

遇到一個問題是多媒體掃描失敗:

從logcat 中可以看到的時候 這個服務 com.android.providers.media/.MediaScannerService 啟動超時了

1、com.android.providers.media 和 com.android.providers.media/.MediaScannerService 到底是在哪裡定義聲明的?

2、Why com.android.providers.media/.MediaProvider is crashing?

帶著問題擴展開來學習,遇到什麼記錄什麼,慢慢搭建系統的體系

平台:Android 7.1

1、com.android.providers.media 與 MediaScannerService

看 frameworks.java 的構造方法和connect 方法, 其注釋和介面實現可以回答之前的疑問

如下介面通過

​ new ComponentName("com.android.providers.media",
​ "com.android.providers.media.MediaScannerService"));

而 MediaScannerService 我們只需要看如下文件中的注釋就對其流程有一個清晰的了解

frameworks.java

2、Why com.android.providers.media/.MediaProvider is crashing?

frameworks.java getContentProviderImpl函數中會對 OomAdj 優先順序進行調整,如果調整失敗和判斷進程不可活, 則調用 appDiedLocked kill 其進程

其實最後之所以把文章標題寫為隨筆,就是還有未完成的事情要做。

雖然把 1 的疑問找到地方了,但是其實是引出來了更多疑問,什麼時候調用,其他層邏輯實現

轉一篇文章看看 Android開發——MediaProvider源碼分析(1)

同樣2 也是,OomAdj 為什麼會調整失敗,調整失敗後怎麼做 等等...

這些都是會引發新的思考,並且跟自身已有的知識點聯系起來,所以系統知識技能需要不斷思考,實踐學習

Ⅲ Android來電鈴聲默認設置的實現方法與怎麼設置語音來電的默認鈴聲

Android來電鈴聲默認設置的實現方法與如何設置語音來電的默認鈴聲
一、Android來電鈴聲默認設置的實現方法
Andoird默認來電鈴聲的設置方法為修改build/target/proct/core.mk的ro.config.ringtone的值如
ro.config.ringtone=Backroad.ogg,該音樂文件必須於framework/base/data/sounds/Android.mk中加入音樂文件。
framework/base/media/java/android/media/MediaScanner.java中類的初始化時會設置默認鈴聲的文件名的變數mDefaultRingtoneFilename = SystemProperties.get(DEFAULT_RINGTONE_PROPERTY_PREFIX + Setting.System.RINGTONE);
MediaScanner該類會搜索音樂文件必插入資料庫中,搜索過程中檢查是否與設置的默認鈴聲相同,如果相同則設為默認鈴聲。
} else if (ringtones && mWasEmptyPriorToScan && !mDefaultRingtoneSet) {
if (TextUtils.isEmpty(mDefaultRingtoneFilename) ||
doesPathHaveFilename(entry.mPath, mDefaultRingtoneFilename)) {
setSettingIfNotSet(Settings.System.RINGTONE, tableUri, rowId);
setProfileSettings(AudioProfileManager.TYPE_RINGTONE, tableUri, rowId);
mDefaultRingtoneSet = true;
}
}
二、如何設置語音來電的默認鈴聲
首先在core.mk中新增ro.config.videocall=BentleyDubs.ogg。
在framework/base/media/java/android/media/MediaScanner.java類中新加兩個成員變數
private boolean mDefaultVideoCallSet;
private String mDefaultVideoCallFilename;
在setDefaultRingtoneFileNames()方法中加入以下代碼初始化默認鈴聲的文件名
mDefaultVideoCallFilename = SystemProperties.get(DEFAULT_RINGTONE_PROPERTY_PREFIX
+ Settings.System.VIDEO_CALL);
在endFile()方法中加入以下代碼設置語音來電的默認鈴聲

} else if (ringtones && mWasEmptyPriorToScan && !mDefaultVideoCallSet) {
if (TextUtils.isEmpty(mDefaultVideoCallFilename) ||
doesPathHaveFilename(entry.mPath, mDefaultVideoCallFilename)) {
setSettingIfNotSet(Settings.System.VIDEO_CALL, tableUri, rowId);
setProfileSettings(AudioProfileManager.TYPE_VIDEO_CALL, tableUri, rowId);
mDefaultVideoCallSet = true;
}
}

Ⅳ android 怎麼獲取手機內存里的音樂信息

Android自帶的音樂播放器中,在獲取音樂文件信息的時候是通過掃描得到相關信息的。掃描時使用掃描器MediaScanner完成。
Android系統提供了MediaScanner、MediaProvider、MediaStore等介面,並且提供了一套資料庫表格,通過Content Provider的方式提供給用戶。當手機開機或者有SD卡插拔等事件發生時,系統將會自動掃描SD卡和手機內存上的媒體文件,如audio、video、圖片等,將相應的信息放到定義好的資料庫表格中。在這個程序中,我們不需要關心如何去掃描手機中的文件,只要了解如何查詢和使用這些信息就可以了。
MediaStore中定義了一系列的數據表格,通過Android ContentResolver提供的查詢介面,我們可以得到各種需要的信息。下面我們重點介紹查詢SD卡上的音樂文件信息。
先來了解一下ContentResolver的查詢介面:
Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
Uri:指明要查詢的資料庫名稱加上表的名稱,從MediaStore中我們可以找到相應信息的參數。
Projection: 指定查詢資料庫表中的哪幾列,返回的游標中將包括相應的信息。Null則返回所有信息。
selection: 指定查詢條件
selectionArgs:參數selection里有 ?這個符號是,這里可以以實際值代替這個問號。如果selection這個沒有?的話,那麼這個String數組可以為null。
SortOrder:指定查詢結果的排列順序
下面的命令將返回所有在外部存儲卡上的音樂文件的信息:
Cursor cursor = query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
得到cursor後,我們可以調用Cursor的相關方法具體的音樂信息:
歌曲ID:MediaStore.Audio.Media._ID
Int id = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));
歌曲的名稱:MediaStore.Audio.Media.TITLE
String tilte = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
歌曲的專輯名:MediaStore.Audio.Media.ALBUM
String album = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM));

歌曲的歌手名:MediaStore.Audio.Media.ARTIST
String artist = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));

歌曲文件的路徑:MediaStore.Audio.Media.DATA
String url = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
歌曲的總播放時長:MediaStore.Audio.Media.DURATION
Int ration = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION));
歌曲文件的大小:MediaStore.Audio.Media.SIZE
Int size = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE));

熱點內容
家用電腦改成伺服器並讓外網訪問 發布:2025-02-01 15:30:23 瀏覽:354
javac工資 發布:2025-02-01 15:24:28 瀏覽:22
如何刪除伺服器登錄賬號 發布:2025-02-01 15:21:05 瀏覽:498
瑞薩編程器 發布:2025-02-01 15:19:18 瀏覽:85
上海ntp伺服器搭建 發布:2025-02-01 15:03:38 瀏覽:991
c游戲編程基礎 發布:2025-02-01 15:00:17 瀏覽:993
routejs怎麼動態配置 發布:2025-02-01 14:59:07 瀏覽:502
家用電腦安裝伺服器內存 發布:2025-02-01 14:38:50 瀏覽:257
增量調制編解碼實驗報告 發布:2025-02-01 14:30:30 瀏覽:787
不良人2無敵傷害腳本 發布:2025-02-01 14:23:04 瀏覽:398