Android FileObserver類是用來監控文件和目錄的變化的,但是在Android 6.0及以上的版本中,需要動態請求文件讀取權限才能使用FileObserver類來監聽文件變化。處理權限問題可以通過以下步驟:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
// 檢查是否已經有文件讀取權限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
// 如果沒有權限,動態請求權限
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_READ_EXTERNAL_STORAGE);
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_READ_EXTERNAL_STORAGE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 權限被授予,可以開始使用FileObserver來監聽文件變化
} else {
// 權限被拒絕,需要提示用戶授予權限才能繼續操作
}
}
}
通過以上步驟,可以處理Android FileObserver類的權限問題,確保在Android 6.0及以上的版本中能夠正常監聽文件變化。