`
scliu0718
  • 浏览: 51476 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

Android4.4中拒绝发送Intent.ACTION_MEDIA_MOUNTED扫描SD卡的广播

 
阅读更多

通常在我们的项目中,可能会遇到写本地文件,最常用的就是图片文件,在这之后需要通知系统重新扫描SD卡,
在Android4.4之前也就是以发送一个Action为“Intent.ACTION_MEDIA_MOUNTED”的广播通知执行扫描。如下:

this.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));

但在Android4.4中,则会抛出以下异常:

W/ActivityManager( 498): Permission Denial: not allowed to send broadcast android.intent.action.MEDIA_MOUNTED from pid=2269, uid=20016
那是因为Android4.4中限制了系统应用才有权限使用广播通知系统扫描SD卡。

解决方式:
使用MediaScannerConnection执行具体文件或文件夹进行扫描。

MediaScannerConnection.scanFile(this, new String[]{Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getPath() + "/" + fileName}, null, null);


分享到:
评论

相关推荐

    Andriod接收广播的类

    'android.intent.action.MEDIA_MOUNTED' 扩展介质被移除。 'android.intent.action.MEDIA_REMOVED' 已经扫描完介质的一个目录。 'android.intent.action.MEDIA_SCANNER_FINISHED' 开始扫描介质的一个目录。 '...

    android.intent.action.TIME_TICK

    接收系统的时间流逝的广播,屏幕开启关闭的广播,电量改变的广播。这些广播在清单文件里注册时,看不到效果。在这个例子中通过在一个服务里面用代码注册的方式,成功接收了这些广播。

    Android利用Intent.ACTION_SEND进行分享

    其实在系统的文件管理器中,这应该是我们常用的功能(包括文件的打开Intent.ACTION_VIEW)。 下面列出一个简单的分享方式 Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND); ...

    android 监听卸载那些事儿

    android.intent.action.PACKAGE_REMOVED和android.intent.action.PACKAGE_ADDED 可以监听别的应用被安装卸载,但不能监听自己被卸载啊。 监听自己被卸载通过前辈们探索发现,只能通过监听系统卸载log如:act=...

    Intent.action_大全

    Android Intent Action

    Android使用Intent.ACTION_SEND分享图片和文字内容的示例代码

    本文讲述了Android版Intent.ACTION_SEND分享图片和文字内容。分享给大家供大家参考,具体如下: 编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android...

    android Intent实例

    Intent在Android应用开发中,占有很大的分量,关于Intent在Android中的作用在网络上已经有很多资料了,这里不再累赘,本人喜欢直来直去。在网上看到很多关于Intent的资料,说那么多,你也许还是一头雾水,到底如何...

    Android 静默安装和静默卸载(SilentInstaller)

    Intent intent = new Intent("android.intent.action.SILENT_PACKAGE_INSTALL"); intent.putExtra("silent_install_file", "/sdcard/Helloworld.apk"); intent.putExtra("silent_install_auto_start", true);//...

    用Intent.ACTION_SEND进行分享

    http://blog.csdn.net/xuie0000/article/details/50604741用例

    Android中获取系统图片示例

    获取系统图片的简单示例,使用Intent.ACTION_GET_CONTENT 和 MediaStore两种方式获取图片以及其真正的系统所在的位置

    android 系统中的几乎所有广播接收者

    BOOT_COMPLETED_ACTION 在系统启动后,这个动作被广播一次(只有一次) "android.intent.action.BOOT_COMPLETED" CALL_FORWARDING_STATE_CHANGED_ACTION 语音电话的呼叫转移状态已经改变 "android.intent.action.CFF" ...

    Android 屏幕唤醒 + 屏幕解锁 + 开机服务监听(android.intent.action.BOOT-COMPLET)

    Android 屏幕唤醒 + 屏幕解锁 + 开机服务监听(android.intent.action.BOOT_COMPLET)添加权限:{//开机监听<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/><uses-permission android...

    android Action call 拨打电话 Intent.ACTION.CALL

    android Action call 拨打电话 Intent.ACTION.CALL

    android获取相册图片和路径的实现方法

    再比如Android4.4后Intent(Intent.ACTION_GET_CONTENT);和Intent(Intent.ACTION_OPEN_DOCUMENT);两个方法所得到的图片的uri是不一样的,用老的方法导致在Android4.4系统获取不到图片。 private

    Android功能代码

    Intent intent = new Intent(android.provider.Settings.ACTION_SETTINGS); //系统设置 startActivityForResult( intent , 0); 2.打开网络设置界面(其他设置中的界面同理) Intent intent = new Intent(android....

    android创建桌面快捷方式

    仿照微信或是淘宝网,发送快捷方式到桌面,主要代码如下: // 安装的Intent Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");... // 发送广播 sendBroadcast(shortcut);

    android-将内容分享到自己的app

    像qq,微信那样 调用代码Intent intent=new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_SUBJECT, "分享"); intent.putExtra(Intent.EXTRA_TITLE, mTitle....

Global site tag (gtag.js) - Google Analytics