Meh*_*goz 7 android android-mediascanner
我正在使用MediaScanner. 但是 API 28 和 29 不起作用。
context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, file));
Run Code Online (Sandbox Code Playgroud)
我用过Broadcast,但效果不一样。因为它被“弃用”了。
java public static class FilesScanner extends ContextWrapper implements MediaScannerConnection.MediaScannerConnectionClient{
private MediaScannerConnection connection = null;
private String SCAN_FILE_PATH = "";
private String SCAN_FILE_MIME_TYPE = "*/*";
public static FilesScanner with(Context context, String SCAN_FILE_PATH){ return new FilesScanner(context, SCAN_FILE_PATH, "*/*"); }
public static FilesScanner with(Context context, String SCAN_FILE_PATH, String SCAN_FILE_MIME_TYPE){ return new FilesScanner(context, SCAN_FILE_PATH, SCAN_FILE_MIME_TYPE); }
private FilesScanner(Context context, String SCAN_FILE_PATH, String SCAN_FILE_MIME_TYPE){
super(context);
this.SCAN_FILE_PATH = SCAN_FILE_PATH;
if (SCAN_FILE_PATH == null){
this.SCAN_FILE_PATH = FilePaths.ROOT_DIR;
}
this.SCAN_FILE_MIME_TYPE = SCAN_FILE_MIME_TYPE;
if (SCAN_FILE_MIME_TYPE == null){
this.SCAN_FILE_MIME_TYPE = "*/*";
}
connection = new MediaScannerConnection(this, this);
connection.connect();
}
@Override
public void onMediaScannerConnected() {
MyLog.d("onMediaScannerConnected");
connection.scanFile(SCAN_FILE_PATH, SCAN_FILE_MIME_TYPE);
}
@Override
public void onScanCompleted(String path, Uri uri) {
MyLog.d("onScanCompleted" + " URI : " + uri.getPath());
connection.disconnect();
}
}
FilesScanner.with(this, path, "image/*");
Run Code Online (Sandbox Code Playgroud)
从 Android 9(API 级别 28)开始,NETWORK_STATE_CHANGED_ACTION广播不会接收有关用户位置或个人身份数据的信息。
此外,如果您的应用安装在运行Android 9 或更高版本的设备上,则来自 Wi-Fi 的系统广播不包含 SSID、BSSID、连接信息或扫描结果。要获取此信息,请调用getConnectionInfo()getConnectionInfo
有关更多信息,请使用此文档链接:https ://developer.android.com/guide/components/broadcasts
| 归档时间: |
|
| 查看次数: |
1516 次 |
| 最近记录: |