当前位置:首页 » 安卓系统 » 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 14:38:50 浏览:255
增量调制编译码实验报告 发布:2025-02-01 14:30:30 浏览:787
不良人2无敌伤害脚本 发布:2025-02-01 14:23:04 浏览:398
地图flash源码 发布:2025-02-01 14:13:33 浏览:957
家庭影院配置什么样的音响 发布:2025-02-01 14:04:33 浏览:545
苹果手机存储空间不能用怎么回事 发布:2025-02-01 14:03:04 浏览:259
qq易语言盗号源码 发布:2025-02-01 14:01:25 浏览:812
源神比较好的云服务器 发布:2025-02-01 13:55:27 浏览:208
黑苹果idea编译慢 发布:2025-02-01 13:45:30 浏览:552
c和linux 发布:2025-02-01 13:39:38 浏览:177