diff --git a/app/src/main/java/com/flywithu/carnav/MainActivity.java b/app/src/main/java/com/flywithu/carnav/MainActivity.java index 9c69b76..a8361c3 100644 --- a/app/src/main/java/com/flywithu/carnav/MainActivity.java +++ b/app/src/main/java/com/flywithu/carnav/MainActivity.java @@ -26,7 +26,7 @@ public class MainActivity extends AppCompatActivity { public static final String TAG="carnav"; static final String ACTION_USB_PERMISSION = "com.flywithu.carnav.USB_PERMISSION"; private BroadcastReceiver usbReceiver = null; - private static UsbSerialPort sPort = null; + private void goService() { @@ -109,20 +109,21 @@ public class MainActivity extends AppCompatActivity { Toast.makeText(getApplicationContext(), "Unknown error", Toast.LENGTH_LONG).show(); } else { - + UsbSerialPort sPort = null; sPort = driver.getPorts().get(0); sPort.open(connection); + Toast.makeText(getApplicationContext(),"Serial Count:"+String.valueOf(driver.getPorts().size()),Toast.LENGTH_LONG).show(); sPort.close(); sPort = null; - Toast.makeText(getApplicationContext(),"Serial Count:"+String.valueOf(driver.getPorts().size()),Toast.LENGTH_LONG).show(); + goService(); } } } catch(Exception e) { - Toast.makeText(getApplicationContext(),e.toString(),Toast.LENGTH_LONG).show(); + Toast.makeText(getApplicationContext(),e.toString(),Toast.LENGTH_LONG).show(); } diff --git a/app/src/main/java/com/flywithu/carnav/RealService.java b/app/src/main/java/com/flywithu/carnav/RealService.java index b3eae2d..d44613c 100644 --- a/app/src/main/java/com/flywithu/carnav/RealService.java +++ b/app/src/main/java/com/flywithu/carnav/RealService.java @@ -54,10 +54,10 @@ public class RealService extends Service { } private synchronized void sendSerial(String str,Charset enc) { - byte t1[] = new byte[]{0x55, 0x34, 0x50, 0x4C, 0x30, 0x33, 0x7C, 0x31, 0x2C, 0x31, 0x7C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30}; - byte t2[] = new byte[]{0x55, 0x34, 0x50, 0x4C, 0x31, 0x33, 0x7C, 0x41, (byte) 0xec, (byte) 0xa7, (byte) 0x80, (byte) 0xec, (byte) 0x96, (byte) 0xb4, (byte) 0xeb, (byte) 0xb0, (byte) 0x98, 0x5a, 0x7c}; - byte t3[] = new byte[]{0x55, 0x34, 0x50, 0x4C, 0x32, 0x33, 0x7C, (byte) 0xfe, (byte) 0xff, 0x00, 0x41, (byte) 0xc9, (byte) 0xc0, (byte) 0xc5, (byte) 0xb4, (byte) 0xbc, 0x18, 0x00, 0x5a, 0x7c}; - byte t4[] = new byte[]{0x55, 0x34, 0x50, 0x4C, 0x33, 0x33, 0x7C, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, (byte) 0xc9, (byte) 0xc0, 0x00, 0x00, (byte) 0xc5, (byte) 0xb4, 0x00, 0x00, (byte) 0xbc, 0x18, 0x00, 0x00, 0x00, 0x5a, 0x7c}; +// byte t1[] = new byte[]{0x55, 0x34, 0x50, 0x4C, 0x30, 0x33, 0x7C, 0x31, 0x2C, 0x31, 0x7C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30}; +// byte t2[] = new byte[]{0x55, 0x34, 0x50, 0x4C, 0x31, 0x33, 0x7C, 0x41, (byte) 0xec, (byte) 0xa7, (byte) 0x80, (byte) 0xec, (byte) 0x96, (byte) 0xb4, (byte) 0xeb, (byte) 0xb0, (byte) 0x98, 0x5a, 0x7c}; +// byte t3[] = new byte[]{0x55, 0x34, 0x50, 0x4C, 0x32, 0x33, 0x7C, (byte) 0xfe, (byte) 0xff, 0x00, 0x41, (byte) 0xc9, (byte) 0xc0, (byte) 0xc5, (byte) 0xb4, (byte) 0xbc, 0x18, 0x00, 0x5a, 0x7c}; +// byte t4[] = new byte[]{0x55, 0x34, 0x50, 0x4C, 0x33, 0x33, 0x7C, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, (byte) 0xc9, (byte) 0xc0, 0x00, 0x00, (byte) 0xc5, (byte) 0xb4, 0x00, 0x00, (byte) 0xbc, 0x18, 0x00, 0x00, 0x00, 0x5a, 0x7c}; /* 41eca780ec96b4ebb0985a feff0041c9c0c5b4bc18005a @@ -67,8 +67,15 @@ feff0041c9c0c5b4bc18005a try { - sPort.write(getStringToByte(str,enc), 3000); - sPort.write(new byte[]{0xd}, 3000); + sPort.write(getStringToByte(str,enc), 3000); + // Toast.makeText(getApplicationContext(),String.valueOf(result),Toast.LENGTH_SHORT).show(); + sPort.write(new byte[]{0xd}, 3000); + // Toast.makeText(getApplicationContext(),String.valueOf(result2),Toast.LENGTH_SHORT).show(); + Log.d("TAG",str); +// showToast(getApplication(), "SEND:"+str); + + + // sPort.write(t1, 3000); // sPort.write(new byte[]{0xd}, 3000); // @@ -81,17 +88,22 @@ feff0041c9c0c5b4bc18005a // sPort.write(t4, 3000); // sPort.write(new byte[]{0xd}, 3000); } catch (Exception e) { - + showToast(getApplication(),"Error:"+e.toString()); } } + else + { + showToast(getApplication(),"SERIAL NULL"); + } + } protected byte[] getStringToByte(String str,Charset enc) { - ByteBuffer buf = ByteBuffer.allocate(100);; + ByteBuffer buf = ByteBuffer.allocate(300);; /* sendSerial("U4PL13|soar|"); sendSerial("U4PL23|헤어지자 (Prod. 정키)|"); @@ -106,8 +118,10 @@ feff0041c9c0c5b4bc18005a buf.put(arrStr[0].getBytes(Charset.forName("UTF-8"))); buf.put(new byte[]{0x7c}); buf.put(arrStr[1].getBytes(enc)); + // Log.d("TAG", String.valueOf( buf.position())); buf.put(new byte[]{0x7c}); // System.out.println(new String(buf.array())); + // Log.d("TAG", String.valueOf( buf.position())); } else @@ -116,10 +130,11 @@ feff0041c9c0c5b4bc18005a buf.put(str.getBytes(Charset.forName("UTF-8"))); } + byte[] bytes = new byte[buf.position()]; + buf.get(bytes,0,buf.position()); - - return buf.array(); + return bytes; } @@ -147,6 +162,7 @@ feff0041c9c0c5b4bc18005a UsbDeviceConnection connection = null; try { driver = availableDrivers.get(0); + connection = manager.openDevice(driver.getDevice()); if (connection == null) { showToast(getApplication(), "No connection"); @@ -154,8 +170,11 @@ feff0041c9c0c5b4bc18005a } sPort = driver.getPorts().get(0); + + // showToast(getApplication(), driver.getDevice().getProductName()); } catch (Exception e) { showToast(getApplication(), e.toString()); + return START_NOT_STICKY; } try { @@ -172,6 +191,7 @@ feff0041c9c0c5b4bc18005a // Ignore. } sPort = null; + return START_NOT_STICKY; } //set the time //TMST001801140907 @@ -199,31 +219,9 @@ feff0041c9c0c5b4bc18005a //U4PL03|1,1|0001010000000 U4PL13|soar| U4PL23|헤어지자 (Prod. 정키)| U4PL33|휘인 (Whee In)| - showToast(getApplication(), currentTime); -// try { -// sPort.write("zxcv".getBytes(), 50); -// } -// catch(Exception e) -// { -// -// } -// SimpleDateFormat sdf = new SimpleDateFormat("aa hh:mm"); -// boolean run = true; -// while (run) { -// try { -// Thread.sleep(1000 * 60 * 1); // 1 minute -// Date date = new Date(); -// //showToast(getApplication(), sdf.format(date)); -// sendNotification(sdf.format(date)); -// } catch (InterruptedException e) { -// run = false; -// e.printStackTrace(); -// } -// } -// } -// }); -// mainThread.start(); + + IntentFilter iF = new IntentFilter(); iF.addAction("com.android.music.metachanged"); @@ -255,13 +253,21 @@ feff0041c9c0c5b4bc18005a { try { - Thread.sleep(1000); + Thread.sleep(5000); SimpleDateFormat format1 = new SimpleDateFormat("00yyMMddHHmm"); // String f = format1.format(System.currentTimeMillis()); String currentInfo = format1.format(new Date()); String currentTime = String.format("TMST%s", currentInfo); sendSerial(currentTime); - showToast(getApplication(), currentTime); + + sendSerial("U4EN00"); + sendSerial("*R|R1R2R3D1D2A1A3U4|"); + sendSerial("U4PL03|5,3|0001010000000"); + sendSerial("U4PL13|8소아|",Charset.forName("UTF-8")); + sendSerial("U4PL23|16헤어지자 (Prod. 정키)|", Charset.forName("UTF-16")); + sendSerial("U4PL33|32휘인 (Whee In)|",Charset.forName("UTF-32")); + + } catch(InterruptedException e) { @@ -275,6 +281,49 @@ feff0041c9c0c5b4bc18005a }).start(); +// new Thread(new Runnable() { +// @Override +// public void run() +// { +// +// boolean myRun = true; +// showToast(getApplication(), "READ start"); +// while (myRun) +// { +// try +// { +// byte[] mArray = new byte[100]; +// int len = sPort.read(mArray,1000); +// if(len >0) +// { +// String result = new String (mArray,0,len,Charset.defaultCharset()); +// showToast(getApplication(), "READ:"+result); +// } +// else +// { +// showToast(getApplication(), "READ FAIL"); +// Log.d("FAIL","FAIL"); +// } +// +// +// } +// catch(Exception e) +// { +// myRun = false; +// +// } +// } +// +// } +// +// }).start(); + + + + + + + return START_NOT_STICKY; } @@ -285,12 +334,13 @@ feff0041c9c0c5b4bc18005a sPort.close(); sPort = null; } catch (Exception e) { - + showToast(getApplication(),"stop Error"); } serviceIntent = null; setAlarmTimer(); Thread.currentThread().interrupt(); unregisterReceiver(mReceiver); + showToast(getApplication(),"stop Service"); // if (mainThread != null) { // mainThread.interrupt(); // mainThread = null; @@ -317,7 +367,7 @@ feff0041c9c0c5b4bc18005a h.post(new Runnable() { @Override public void run() { - Toast.makeText(application, msg, Toast.LENGTH_LONG).show(); + Toast.makeText(application, msg, Toast.LENGTH_SHORT).show(); } }); } diff --git a/app/src/main/java/com/flywithu/carnav/RebootReceiver.java b/app/src/main/java/com/flywithu/carnav/RebootReceiver.java index 74dc577..1e5c29c 100644 --- a/app/src/main/java/com/flywithu/carnav/RebootReceiver.java +++ b/app/src/main/java/com/flywithu/carnav/RebootReceiver.java @@ -4,10 +4,12 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Build; +import android.widget.Toast; public class RebootReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { Intent in = new Intent(context, RestartService.class); context.startForegroundService(in);