08-13 14:40:00.687: W/System.err(4022): java.io.SyncFailedException: fsync failed: EINVAL (Invalid argument)
08-13 14:40:00.687: W/System.err(4022): at java.io.FileDescriptor.sync(FileDescriptor.java:77)
08-13 14:40:00.687: W/System.err(4022): at java.io.FileOutputStream.flush(FileOutputStream.java:194)
08-13 14:40:00.697: W/System.err(4022): at 패키지명.AlarmReceiver.PowerOff(AlarmReceiver.java:99)
08-13 14:40:00.697: W/System.err(4022): at 패키지명.AlarmReceiver.onReceive(AlarmReceiver.java:61)
08-13 14:40:00.697: W/System.err(4022): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2376)
08-13 14:40:00.697: W/System.err(4022): at android.app.ActivityThread.access$1500(ActivityThread.java:141)
08-13 14:40:00.697: W/System.err(4022): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1310)
08-13 14:40:00.697: W/System.err(4022): at android.os.Handler.dispatchMessage(Handler.java:99)
08-13 14:40:00.707: W/System.err(4022): at android.os.Looper.loop(Looper.java:137)
08-13 14:40:00.707: W/System.err(4022): at android.app.ActivityThread.main(ActivityThread.java:5041)
08-13 14:40:00.707: W/System.err(4022): at java.lang.reflect.Method.invokeNative(Native Method)
08-13 14:40:00.707: W/System.err(4022): at java.lang.reflect.Method.invoke(Method.java:511)
08-13 14:40:00.707: W/System.err(4022): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:816)
08-13 14:40:00.707: W/System.err(4022): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:582)
08-13 14:40:00.707: W/System.err(4022): at dalvik.system.NativeStart.main(Native Method)
08-13 14:40:00.717: W/System.err(4022): Caused by: libcore.io.ErrnoException: fsync failed: EINVAL (Invalid argument)
08-13 14:40:00.717: W/System.err(4022): at libcore.io.Posix.fsync(Native Method)
08-13 14:40:00.717: W/System.err(4022): at libcore.io.BlockGuardOs.fsync(BlockGuardOs.java:97)
08-13 14:40:00.717: W/System.err(4022): at java.io.FileDescriptor.sync(FileDescriptor.java:74)
08-13 14:40:00.717: W/System.err(4022): ... 14 more
스마트폰이 아닌 Android 기반 단말기를 강제 전원Off 시키는 루틴을 적용하였습니다.
스마트폰은 루트 권환이 필요하여 적용이 안되지만
해당 단말기는 위와같은 에러를 품어내며 전원 Off가 되네요.
루트권한은 안되있는걸로 아는데, 이런경우 어떠한 상태라고 봐야될까요?
강제종료는 아래와 같이 정의하였습니다.
private void PowerOff(){
try {
// Root 권한 필요
Process p = Runtime.getRuntime().exec("su");
OutputStream os = p.getOutputStream();
os.write("reboot -p\n".getBytes());
os.flush();
} catch (Exception e) {e.printStackTrace();}
}