From f111bd45b428a9084b29415d4bc4e4e967458bd0 Mon Sep 17 00:00:00 2001 From: SeungheeOh Date: Sat, 31 Aug 2019 17:54:58 +0900 Subject: [PATCH] FirstCommit second commit 3rd commit - made basic skeleton 3rd commit - made basic skeleton new update for thread RealService test for. Correct using bytearray. Correct using bytearray. Correct using bytearray. --- .idea/vcs.xml | 10 +- app/src/main/AndroidManifest.xml | 25 +- .../{AlarmRecever.java => AlarmReceiver.java} | 42 +-- .../com/flywithu/carnav/MainActivity.java | 111 +++++- .../java/com/flywithu/carnav/MusicTitle.java | 74 ++++ .../java/com/flywithu/carnav/RealService.java | 337 ++++++++++-------- ...RebootRecever.java => RebootReceiver.java} | 37 +- .../com/flywithu/carnav/RestartService.java | 1 - .../com/flywithu/carnav/ExampleUnitTest.java | 65 ++++ 9 files changed, 494 insertions(+), 208 deletions(-) rename app/src/main/java/com/flywithu/carnav/{AlarmRecever.java => AlarmReceiver.java} (88%) create mode 100644 app/src/main/java/com/flywithu/carnav/MusicTitle.java rename app/src/main/java/com/flywithu/carnav/{RebootRecever.java => RebootReceiver.java} (88%) diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 9661ac7..94a25f7 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,6 +1,6 @@ - - - - - + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd1ada5..da0dfc6 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,6 +2,11 @@ + + + + + + + + + + + + + + + + + + - - - - \ No newline at end of file diff --git a/app/src/main/java/com/flywithu/carnav/AlarmRecever.java b/app/src/main/java/com/flywithu/carnav/AlarmReceiver.java similarity index 88% rename from app/src/main/java/com/flywithu/carnav/AlarmRecever.java rename to app/src/main/java/com/flywithu/carnav/AlarmReceiver.java index bb9a0ec..bd91f22 100644 --- a/app/src/main/java/com/flywithu/carnav/AlarmRecever.java +++ b/app/src/main/java/com/flywithu/carnav/AlarmReceiver.java @@ -1,21 +1,21 @@ -package com.flywithu.carnav; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.os.Build; - -public class AlarmRecever 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); - } else { - Intent in = new Intent(context, RealService.class); - context.startService(in); - } - } - -} +package com.flywithu.carnav; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.os.Build; + +public class AlarmReceiver 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); + } else { + Intent in = new Intent(context, RealService.class); + context.startService(in); + } + } + +} diff --git a/app/src/main/java/com/flywithu/carnav/MainActivity.java b/app/src/main/java/com/flywithu/carnav/MainActivity.java index 9927870..f7358ac 100644 --- a/app/src/main/java/com/flywithu/carnav/MainActivity.java +++ b/app/src/main/java/com/flywithu/carnav/MainActivity.java @@ -1,36 +1,122 @@ package com.flywithu.carnav; -import androidx.appcompat.app.AppCompatActivity; - +import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.hardware.usb.UsbDeviceConnection; +import android.hardware.usb.UsbManager; import android.os.Bundle; -import android.util.Log; import android.widget.Toast; +import androidx.appcompat.app.AppCompatActivity; + +import com.hoho.android.usbserial.driver.UsbSerialDriver; +import com.hoho.android.usbserial.driver.UsbSerialPort; +import com.hoho.android.usbserial.driver.UsbSerialProber; + +import java.util.List; + public class MainActivity extends AppCompatActivity { - private Intent serviceIntent; public static final String SERVICECMD = "com.android.music.musicservicecommand"; - public static final String TAG="carnav"; - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); + public static final String TAG = "carnav"; + static final String ACTION_USB_PERMISSION = "com.flywithu.carnav.USB_PERMISSION"; + private Intent serviceIntent; + private BroadcastReceiver usbReceiver = null; + + private void goService() { + + + if (RealService.serviceIntent == null) { - if (RealService.serviceIntent==null) { serviceIntent = new Intent(this, RealService.class); startService(serviceIntent); + Toast.makeText(getApplicationContext(), "new start", Toast.LENGTH_LONG).show(); } else { serviceIntent = RealService.serviceIntent;//getInstance().getApplication(); Toast.makeText(getApplicationContext(), "already", Toast.LENGTH_LONG).show(); } - } + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + + UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE); + List availableDrivers = UsbSerialProber.getDefaultProber().findAllDrivers(manager); + if (!availableDrivers.isEmpty()) { + Toast.makeText(getApplicationContext(), "USB Exist", Toast.LENGTH_LONG).show(); + + UsbSerialDriver driver = null; + UsbDeviceConnection connection = null; + try { + driver = availableDrivers.get(0); + if (!manager.hasPermission(driver.getDevice())) { + + Toast.makeText(getApplicationContext(), "NO Permission", Toast.LENGTH_LONG).show(); + //Request USB HOST + // You probably need to call UsbManager.requestPermission(driver.getDevice(), ..) + if (!manager.hasPermission(driver.getDevice())) { + + PendingIntent mPermissionIntent; + mPermissionIntent = PendingIntent.getBroadcast(MainActivity.this, 0, + new Intent(ACTION_USB_PERMISSION), PendingIntent.FLAG_ONE_SHOT); +// + + usbReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + if (ACTION_USB_PERMISSION.equals(action)) { + + if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, true)) { + Toast.makeText(getApplicationContext(), "Pemission Granted", Toast.LENGTH_LONG).show(); + goService(); + } else { + Toast.makeText(getApplicationContext(), "Pemission Denied", Toast.LENGTH_LONG).show(); + } + } + + } + }; + + registerReceiver(usbReceiver, new IntentFilter(ACTION_USB_PERMISSION)); + manager.requestPermission(driver.getDevice(), mPermissionIntent); + + + } + } else { + Toast.makeText(getApplicationContext(), "Has Permission", Toast.LENGTH_LONG).show(); + connection = manager.openDevice(driver.getDevice()); + if (connection == null) { + 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; + + + goService(); + } + } + } catch (Exception e) { + Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show(); + } + } else { + Toast.makeText(getApplicationContext(), "NO USB", Toast.LENGTH_LONG).show(); + } + } + + @Override protected void onDestroy() { super.onDestroy(); @@ -38,6 +124,9 @@ public class MainActivity extends AppCompatActivity { stopService(serviceIntent); serviceIntent = null; } + if (usbReceiver != null) { + unregisterReceiver(usbReceiver); + } } } diff --git a/app/src/main/java/com/flywithu/carnav/MusicTitle.java b/app/src/main/java/com/flywithu/carnav/MusicTitle.java new file mode 100644 index 0000000..927eced --- /dev/null +++ b/app/src/main/java/com/flywithu/carnav/MusicTitle.java @@ -0,0 +1,74 @@ +package com.flywithu.carnav; + +public class MusicTitle { + + private String artist = null; + private String album = null; + private String track = null; + private boolean isRunning = false; + private int total = 0; + private int position = 0; + + + public String getAlbum() { + if(album == null) + { + album = "getAlbum"; + } + return album; + } + + public void setAlbum(String album) { + this.album = album; + } + + public String getTrack() { + if(track == null) + { + track = "getTrack"; + } + return track; + } + + public void setTrack(String track) { + this.track = track; + } + + public boolean isRunning() { + return isRunning; + } + + public void setRunning(boolean running) { + isRunning = running; + } + + public int getTotal() { + return 100; + } + + //public void setTotal(int total) { + // this.total = total; + //} + + public int getPosition() { + return position; + } + + public void setPosition(int position) { + this.position = position; + } + + + + public String getArtist() { + if(artist == null) + { + artist = "getArtist"; + } + return artist; + } + + public void setArtist(String artist) { + this.artist = artist; + } +} diff --git a/app/src/main/java/com/flywithu/carnav/RealService.java b/app/src/main/java/com/flywithu/carnav/RealService.java index 7ef1649..33b5eed 100644 --- a/app/src/main/java/com/flywithu/carnav/RealService.java +++ b/app/src/main/java/com/flywithu/carnav/RealService.java @@ -2,9 +2,6 @@ package com.flywithu.carnav; import android.app.AlarmManager; import android.app.Application; -import android.app.Notification; -import android.app.NotificationChannel; -import android.app.NotificationManager; import android.app.PendingIntent; import android.app.Service; import android.content.BroadcastReceiver; @@ -13,121 +10,177 @@ import android.content.Intent; import android.content.IntentFilter; import android.hardware.usb.UsbDeviceConnection; import android.hardware.usb.UsbManager; -import android.media.RingtoneManager; -import android.net.Uri; -import android.os.Build; +import android.os.Bundle; import android.os.Handler; import android.os.IBinder; - import android.util.Log; import android.widget.Toast; -import androidx.core.app.NotificationCompat; - import com.hoho.android.usbserial.driver.UsbSerialDriver; import com.hoho.android.usbserial.driver.UsbSerialPort; import com.hoho.android.usbserial.driver.UsbSerialProber; import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.charset.Charset; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; public class RealService extends Service { - // private Thread mainThread; + // private Thread mainThread; public static Intent serviceIntent = null; private static UsbSerialPort sPort = null; + private MusicTitle currentSong = new MusicTitle(); + private BroadcastReceiver mReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + + + Bundle bundle = intent.getExtras(); + if (bundle != null) { + for (String key : bundle.keySet()) { + Object value = bundle.get(key); + Log.d("MUSIC", String.format("%s %s (%s)", key, + value.toString(), value.getClass().getName())); + } + } + + String action = intent.getAction(); + String cmd = intent.getStringExtra("command"); + Log.v("MUSIC ", action + " / " + cmd); + String artist = intent.getStringExtra("artist"); + String album = intent.getStringExtra("album"); + String track = intent.getStringExtra("track"); + Long myPosition = intent.getLongExtra("id", 1); + Log.v("MUSIC", artist + ":" + album + ":" + track); + boolean isRunning = intent.getBooleanExtra("playstate", false) | intent.getBooleanExtra("playing", false); + + currentSong.setRunning(isRunning); + + if (isRunning == true) { + currentSong.setAlbum(album); + currentSong.setArtist(artist); + currentSong.setTrack(track); + currentSong.setPosition(myPosition.intValue()); + } + + } + }; public RealService() { } + private void sendSerial(String str) { + + sendSerial(str, Charset.forName("UTF-8")); + } + + private synchronized void sendSerial(String str, Charset enc) { + + if (sPort != null) { + try { + + int len = sPort.write(getStringToByte(str, enc), 3000); + sPort.write(new byte[]{0xd}, 3000); + Log.d("TAG", str); + } catch (Exception e) { + showToast(getApplication(), "Error:" + e.toString()); + } + + } else { + showToast(getApplication(), "SERIAL NULL"); + } + + + } + + protected byte[] getStringToByte(String str, Charset enc) { + ByteBuffer buf = ByteBuffer.allocate(150); + + String[] arrStr = null; + if (str.startsWith("U4PL13") || str.startsWith("U4PL23") || str.startsWith("U4PL33")) { + arrStr = str.split("\\|"); + buf.put(arrStr[0].getBytes(Charset.forName("UTF-8"))); + buf.put(new byte[]{0x7c}); + buf.put(arrStr[1].getBytes(enc)); + buf.put(new byte[]{0x7c}); + + } else { + buf.put(str.getBytes(Charset.forName("UTF-8"))); + } + + + byte[] bytes = new byte[buf.position()]; + buf.flip(); + buf.get(bytes); + + + return bytes; + } + @Override public int onStartCommand(Intent intent, int flags, int startId) { serviceIntent = intent; showToast(getApplication(), "Start Service"); -// -// mainThread = new Thread(new Runnable() { -// @Override -// public void run() { + UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE); + List availableDrivers = UsbSerialProber.getDefaultProber().findAllDrivers(manager); + if (availableDrivers.isEmpty()) { + showToast(getApplication(), "NO SERIAL"); + return START_NOT_STICKY; + } + + UsbSerialDriver driver = null; + UsbDeviceConnection connection = null; + try { + driver = availableDrivers.get(0); + + connection = manager.openDevice(driver.getDevice()); + if (connection == null) { + showToast(getApplication(), "No connection"); + return START_NOT_STICKY; + + } + sPort = driver.getPorts().get(0); + } catch (Exception e) { + showToast(getApplication(), e.toString()); + return START_NOT_STICKY; + } + + try { + + sPort.open(connection); + sPort.setParameters(19200, 8, UsbSerialPort.STOPBITS_1, UsbSerialPort.PARITY_NONE); - - UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE); - List availableDrivers = UsbSerialProber.getDefaultProber().findAllDrivers(manager); - if (availableDrivers.isEmpty()) { - showToast(getApplication(), "NO SERIAL"); - return START_NOT_STICKY; - } - -// Open a connection to the first available driver. - UsbSerialDriver driver = null; - UsbDeviceConnection connection = null; - try { - driver = availableDrivers.get(0); - connection = manager.openDevice(driver.getDevice()); - if (connection == null) { - showToast(getApplication(), "No connection"); - // You probably need to call UsbManager.requestPermission(driver.getDevice(), ..) - return START_NOT_STICKY; - } - } - catch(Exception e) - { - showToast(getApplication(),e.toString()); - } - - try { - sPort.open(connection); - sPort.setParameters(115200, 8, UsbSerialPort.STOPBITS_1, UsbSerialPort.PARITY_NONE); + } catch (IOException e) { + showToast(getApplication(), "Error opening device: " + e.getMessage()); + try { + sPort.close(); + } catch (IOException e2) { + // Ignore. + } + sPort = null; + return START_NOT_STICKY; + } + 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); + sendSerial("U4EN00"); - } catch (IOException e) { - showToast(getApplication(),"Error opening device: " + e.getMessage()); - try { - sPort.close(); - } catch (IOException e2) { - // Ignore. - } - sPort = null; - } - //set the time - - -// 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"); - iF.addAction("com.htc.music.metachanged"); - iF.addAction("fm.last.android.metachanged"); iF.addAction("com.sec.android.app.music.metachanged"); iF.addAction("com.nullsoft.winamp.metachanged"); @@ -138,8 +191,58 @@ public class RealService extends Service { iF.addAction("com.rdio.android.metachanged"); iF.addAction("com.samsung.sec.android.MusicPlayer.metachanged"); iF.addAction("com.andrew.apollo.metachanged"); + iF.addAction("com.android.music.metachanged"); + iF.addAction("com.android.music.playstatechanged"); + iF.addAction("com.android.music.playbackcomplete"); + iF.addAction("com.android.music.queuechanged"); + registerReceiver(mReceiver, iF); + + + new Thread(new Runnable() { + @Override + public void run() { + + boolean myRun = true; + int stopCount = 0; + while (myRun) { + try { + + + Thread.sleep(5000); + SimpleDateFormat format1 = new SimpleDateFormat("00yyMMddHHmm"); + String currentInfo = format1.format(new Date()); + String currentTime = String.format("TMST%s", currentInfo); + sendSerial(currentTime); + + if (currentSong.isRunning()) { + stopCount = 0; + sendSerial("U4EN00"); + sendSerial("U4OP00"); + sendSerial("U4PL03|" + currentSong.getTotal() + "," + currentSong.getPosition() + "|0001010000000"); + sendSerial("U4PL13|" + currentSong.getAlbum() + "|", Charset.forName("UTF-8")); + sendSerial("U4PL23|" + currentSong.getTrack() + "|", Charset.forName("UTF-8")); + sendSerial("U4PL33|" + currentSong.getArtist() + "|", Charset.forName("UTF-8")); + } else { + if (stopCount > 5) { + sendSerial("U4DI00"); + } + stopCount++; + } + + + } catch (InterruptedException e) { + myRun = false; + + } + } + + } + + }).start(); + + return START_NOT_STICKY; } @@ -149,19 +252,15 @@ public class RealService extends Service { try { sPort.close(); sPort = null; - } - catch(Exception e) - { - + } 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; -// } } @Override @@ -184,7 +283,7 @@ public class RealService extends Service { h.post(new Runnable() { @Override public void run() { - Toast.makeText(application, msg, Toast.LENGTH_LONG).show(); + Toast.makeText(application, msg, Toast.LENGTH_SHORT).show(); } }); } @@ -193,70 +292,12 @@ public class RealService extends Service { final Calendar c = Calendar.getInstance(); c.setTimeInMillis(System.currentTimeMillis()); c.add(Calendar.SECOND, 1); - Intent intent = new Intent(this, AlarmRecever.class); - PendingIntent sender = PendingIntent.getBroadcast(this, 0,intent,0); + Intent intent = new Intent(this, AlarmReceiver.class); + PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent, 0); AlarmManager mAlarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); mAlarmManager.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), sender); } - - private BroadcastReceiver mReceiver = new BroadcastReceiver() { - - @Override - public void onReceive(Context context, Intent intent) { - try { - if (sPort != null) - { - sPort.write("abc".getBytes(), 3000); - } - } - - catch(Exception e) - { - e.toString(); - } - String action = intent.getAction(); - String cmd = intent.getStringExtra("command"); - Log.v("tag ", action + " / " + cmd); - String artist = intent.getStringExtra("artist"); - String album = intent.getStringExtra("album"); - String track = intent.getStringExtra("track"); - Log.v("tag", artist + ":" + album + ":" + track); - - - - // Toast.makeText(MainActivity.this, track, Toast.LENGTH_SHORT).show(); - } - }; - - -// private void sendNotification(String messageBody) { -// Intent intent = new Intent(this, MainActivity.class); -// intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); -// PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent, PendingIntent.FLAG_ONE_SHOT); -// -// String channelId = "fcm_default_channel";//getString(R.string.default_notification_channel_id); -// Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); -// NotificationCompat.Builder notificationBuilder = -// new NotificationCompat.Builder(this, channelId) -// .setSmallIcon(R.mipmap.ic_launcher)//drawable.splash) -// .setContentTitle("Service test") -// .setContentText(messageBody) -// .setAutoCancel(true) -// .setSound(defaultSoundUri) -// .setPriority(Notification.PRIORITY_HIGH) -// .setContentIntent(pendingIntent); -// -// NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); -// -// // Since android Oreo notification channel is needed. -// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { -// NotificationChannel channel = new NotificationChannel(channelId,"Channel human readable title", NotificationManager.IMPORTANCE_DEFAULT); -// notificationManager.createNotificationChannel(channel); -// } -// -// notificationManager.notify(0 /* ID of notification */, notificationBuilder.build()); -// } } \ No newline at end of file diff --git a/app/src/main/java/com/flywithu/carnav/RebootRecever.java b/app/src/main/java/com/flywithu/carnav/RebootReceiver.java similarity index 88% rename from app/src/main/java/com/flywithu/carnav/RebootRecever.java rename to app/src/main/java/com/flywithu/carnav/RebootReceiver.java index 63f3533..24b539e 100644 --- a/app/src/main/java/com/flywithu/carnav/RebootRecever.java +++ b/app/src/main/java/com/flywithu/carnav/RebootReceiver.java @@ -1,19 +1,20 @@ -package com.flywithu.carnav; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.os.Build; - -public class RebootRecever 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); - } else { - Intent in = new Intent(context, RealService.class); - context.startService(in); - } - } +package com.flywithu.carnav; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.os.Build; + +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); + } else { + Intent in = new Intent(context, RealService.class); + context.startService(in); + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/flywithu/carnav/RestartService.java b/app/src/main/java/com/flywithu/carnav/RestartService.java index b1bba40..cf5bc96 100644 --- a/app/src/main/java/com/flywithu/carnav/RestartService.java +++ b/app/src/main/java/com/flywithu/carnav/RestartService.java @@ -9,7 +9,6 @@ import android.content.Intent; import android.os.Build; import android.os.IBinder; - import androidx.core.app.NotificationCompat; public class RestartService extends Service { diff --git a/app/src/test/java/com/flywithu/carnav/ExampleUnitTest.java b/app/src/test/java/com/flywithu/carnav/ExampleUnitTest.java index e90aded..2cb65a7 100644 --- a/app/src/test/java/com/flywithu/carnav/ExampleUnitTest.java +++ b/app/src/test/java/com/flywithu/carnav/ExampleUnitTest.java @@ -2,6 +2,12 @@ package com.flywithu.carnav; import org.junit.Test; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.util.Date; + import static org.junit.Assert.*; /** @@ -14,4 +20,63 @@ public class ExampleUnitTest { public void addition_isCorrect() { assertEquals(4, 2 + 2); } + + @Test + public void checkDate() + { + LocalDateTime currentDateTime = LocalDateTime.now(); + //TMST001801140907 + //TMST00YYDDDD0907 + + Date myDate = new Date ( "Sun,5 Dec 1999 00:07:21" ); + + + SimpleDateFormat format1 = new SimpleDateFormat ( "yy MM dd HH mm"); + // String f = format1.format(System.currentTimeMillis()); + String f = format1.format(myDate); + System.out.println(f); + + + } + private static String bytesToHex(byte[] hashInBytes) { + + StringBuilder sb = new StringBuilder(); + for (byte b : hashInBytes) { + sb.append(String.format("%02x", b)); + } + return sb.toString(); + + } + @Test + public void myTest() + { + RealService rs = new RealService(); + rs.getStringToByte("U4PL23|헤어지자 (Prod. 정키)|", Charset.forName("UTF-8")); + } + + @Test + public void checkout() + { + //55 34 50 4C 33 33 7C ED 9C 98 EC 9D B8 20 28 57 68 65 65 20 49 6E 29 7C 0D + String test = "오"; + //EC A7 80 EC 96 B4 EB B0 98 + + //오 + //오 + // ec98a4 + //feffc624 + //0000c624 + System.out.println(test); + try { + System.out.println(bytesToHex(test.getBytes("utf-8"))); + System.out.println(bytesToHex(test.getBytes("utf-16"))); + System.out.println(bytesToHex(test.getBytes("utf-32"))); + System.out.println(new String(new byte[]{0x0,(byte)0xec,0x0,(byte)0x98,0x0,(byte)0xa4}, StandardCharsets.UTF_16)); + } + catch(Exception e) + { + e.printStackTrace(); + } + + } } \ No newline at end of file