У меня есть два android приложения. Одно приложение создает текстовый файл, который должен быть заблокирован. Другое приложение проверяет «canWrite ()», но оно всегда возвращает true:
Первое приложение:
File gpxfile = new File(Environment.getExternalStorageDirectory().getAbsoluteFile().toString() + "/WMSCache/lockWMS.txt");
if (!gpxfile.exists()) {
gpxfile.mkdirs();
gpxfile.createNewFile();
}
FileInputStream fis = new FileInputStream(gpxfile);
FileChannel toChannel = new FileOutputStream(gpxfile).getChannel();
if (toChannel != null) {
toChannel.lock();
}
Второе приложение (проверяет таймер, каждые 1000 мс):
final File f = new File(Environment.getExternalStorageDirectory().getAbsoluteFile().toString() + "/WMSCache/lockWMS.txt");
Timer asyncMessageTimer = new Timer();
asyncMessageTimer.schedule(new TimerTask()
{
@Override
public void run() {
if (f.canWrite()) {
Log.d("canWrite", "NOT LOCKED"); //here ALWAYS true
}
else {
Log.d("canWrite", "LOCKED");
}
}
}, 1000, 1000);
Согласно каждому учебнику / решению это должно работать, но это не так. Что я делаю не так?