我没有遇到什么问题.我使用以下内容刷新我的SD卡:
sendbroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,Uri.parse("file://" + Environment.getExternalStorageDirectory())));
并且我创建了一个带有微调器的ProgressDialog,它在开始时弹出(“在开始时” – 我的意思是在sendbroadcast方法之后),并且在成功刷新之后我想解雇它,但我不知道如何检查MediaScanner是否已完成他的工作.我尝试使用broadcastReciver和sendStickyOrderedbroadcast(…),但它似乎是错误的想法……
我无法使用MediaScannerConnection和OnScanCompletedListener(),因为我没有文件的直接路径(在某些情况下,它不存在).
有谁知道如何解决我的问题?我已经没想完了
解决方法
发送广播时,您无法期待结果.
如果接收者(在这种情况下是接收ACTION_MEDIA_MOUNTED广播的MediaScannerService)发送其自己的广播,并在“作业”上发布更新,那么获得一个的唯一方法就是.
如果接收者(在这种情况下是接收ACTION_MEDIA_MOUNTED广播的MediaScannerService)发送其自己的广播,并在“作业”上发布更新,那么获得一个的唯一方法就是.
您应该能够针对当前情况捕获ACTION_MEDIA_SCANNER_FINISHED,但是如果您想要更多控制(即扫描特定文件或扫描进度),您可以实现MediaScannerConnectionClient.