我正在尝试检测DCIM/Camera
目录中的文件更改。但是当我用相机拍摄照片时,事件不会触发。我试图创建一个Service来确保观察者没有关闭,但这没有帮助。
通过USB连接电话时,即使使用计算机上的资源管理器将文件复制到目录中,也不会触发
。如果我使用手机上的ES Explorer复制文件,则不会触发
我在做什么错了?
我已将<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
添加到Android清单中。
目标SDK版本:28,最小值:15
MainActivity代码:
public class MainActivity extends AppCompatActivity {
public final String TAG = "DEBUG";
public static FileObserver observer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final String pathToWatch = Environment.getExternalStorageDirectory().toString()
+ "/DCIM/Camera/";
observer = new FileObserver(pathToWatch) {
@Override
public void onEvent(int event, String file) {
Log.d(TAG, "Event happened!");
Toast.makeText(getBaseContext(), file, Toast.LENGTH_LONG).show();
}
};
observer.startWatching();
}
}