@@ -38,7 +38,7 @@ public void onEvent(int event, String fileName) {
38
38
39
39
if (!init ) {
40
40
// If this a real new device, update permissions again so we can read it
41
- EvdevReader .setPermissions (0666 );
41
+ EvdevReader .setPermissions (new String []{ PATH + "/" + fileName }, 0666 );
42
42
}
43
43
44
44
EvdevHandler handler = new EvdevHandler (PATH + "/" + fileName , listener );
@@ -63,17 +63,29 @@ public EvdevWatcher(EvdevListener listener) {
63
63
this .listener = listener ;
64
64
}
65
65
66
+ private File [] rundownWithPermissionsChange (int newPermissions ) {
67
+ // Rundown existing files
68
+ File devInputDir = new File (PATH );
69
+ File [] files = devInputDir .listFiles ();
70
+
71
+ // Set desired permissions
72
+ String [] filePaths = new String [files .length ];
73
+ for (int i = 0 ; i < files .length ; i ++) {
74
+ filePaths [i ] = files [i ].getAbsolutePath ();
75
+ }
76
+ EvdevReader .setPermissions (filePaths , newPermissions );
77
+
78
+ return files ;
79
+ }
80
+
66
81
public void start () {
67
82
startThread = new Thread () {
68
83
@ Override
69
84
public void run () {
70
- // Get permissions to read the eventX files
71
- EvdevReader .setPermissions (0666 );
72
- init = true ;
85
+ // List all files and allow us access
86
+ File [] files = rundownWithPermissionsChange (0666 );
73
87
74
- // Rundown existing files and generate synthetic events
75
- File devInputDir = new File (PATH );
76
- File [] files = devInputDir .listFiles ();
88
+ init = true ;
77
89
for (File f : files ) {
78
90
observer .onEvent (FileObserver .CREATE , f .getName ());
79
91
}
@@ -92,7 +104,7 @@ public void run() {
92
104
}
93
105
94
106
// Giveup eventX permissions
95
- EvdevReader . setPermissions ( 0066 );
107
+ rundownWithPermissionsChange ( 066 );
96
108
}
97
109
};
98
110
startThread .start ();
0 commit comments