Compare commits

..

1 Commits

Author SHA1 Message Date
f111bd45b4 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.
2019-09-22 07:26:45 +09:00
8 changed files with 192 additions and 270 deletions

2
.idea/misc.xml generated
View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="JDK" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" /> <output url="file://$PROJECT_DIR$/build/classes" />
</component> </component>
<component name="ProjectType"> <component name="ProjectType">

6
.idea/vcs.xml generated Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@ -1,7 +1,5 @@
package com.flywithu.carnav; package com.flywithu.carnav;
import androidx.appcompat.app.AppCompatActivity;
import android.app.PendingIntent; import android.app.PendingIntent;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
@ -10,9 +8,10 @@ import android.content.IntentFilter;
import android.hardware.usb.UsbDeviceConnection; import android.hardware.usb.UsbDeviceConnection;
import android.hardware.usb.UsbManager; import android.hardware.usb.UsbManager;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.widget.Toast; import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.hoho.android.usbserial.driver.UsbSerialDriver; import com.hoho.android.usbserial.driver.UsbSerialDriver;
import com.hoho.android.usbserial.driver.UsbSerialPort; import com.hoho.android.usbserial.driver.UsbSerialPort;
import com.hoho.android.usbserial.driver.UsbSerialProber; import com.hoho.android.usbserial.driver.UsbSerialProber;
@ -21,15 +20,13 @@ import java.util.List;
public class MainActivity extends AppCompatActivity { public class MainActivity extends AppCompatActivity {
private Intent serviceIntent;
public static final String SERVICECMD = "com.android.music.musicservicecommand"; public static final String SERVICECMD = "com.android.music.musicservicecommand";
public static final String TAG = "carnav"; public static final String TAG = "carnav";
static final String ACTION_USB_PERMISSION = "com.flywithu.carnav.USB_PERMISSION"; static final String ACTION_USB_PERMISSION = "com.flywithu.carnav.USB_PERMISSION";
private Intent serviceIntent;
private BroadcastReceiver usbReceiver = null; private BroadcastReceiver usbReceiver = null;
private void goService() private void goService() {
{
if (RealService.serviceIntent == null) { if (RealService.serviceIntent == null) {
@ -59,8 +56,7 @@ public class MainActivity extends AppCompatActivity {
UsbDeviceConnection connection = null; UsbDeviceConnection connection = null;
try { try {
driver = availableDrivers.get(0); driver = availableDrivers.get(0);
if(!manager.hasPermission(driver.getDevice())) if (!manager.hasPermission(driver.getDevice())) {
{
Toast.makeText(getApplicationContext(), "NO Permission", Toast.LENGTH_LONG).show(); Toast.makeText(getApplicationContext(), "NO Permission", Toast.LENGTH_LONG).show();
//Request USB HOST //Request USB HOST
@ -76,16 +72,12 @@ public class MainActivity extends AppCompatActivity {
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
String action = intent.getAction(); String action = intent.getAction();
if(ACTION_USB_PERMISSION.equals(action)) if (ACTION_USB_PERMISSION.equals(action)) {
{
if(intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED,true)) if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, true)) {
{
Toast.makeText(getApplicationContext(), "Pemission Granted", Toast.LENGTH_LONG).show(); Toast.makeText(getApplicationContext(), "Pemission Granted", Toast.LENGTH_LONG).show();
goService(); goService();
} } else {
else
{
Toast.makeText(getApplicationContext(), "Pemission Denied", Toast.LENGTH_LONG).show(); Toast.makeText(getApplicationContext(), "Pemission Denied", Toast.LENGTH_LONG).show();
} }
} }
@ -93,26 +85,22 @@ public class MainActivity extends AppCompatActivity {
} }
}; };
registerReceiver(usbReceiver, new IntentFilter(ACTION_USB_PERMISSION)); registerReceiver(usbReceiver, new IntentFilter(ACTION_USB_PERMISSION));
manager.requestPermission(driver.getDevice(), mPermissionIntent); manager.requestPermission(driver.getDevice(), mPermissionIntent);
} }
} else {
}
else {
Toast.makeText(getApplicationContext(), "Has Permission", Toast.LENGTH_LONG).show(); Toast.makeText(getApplicationContext(), "Has Permission", Toast.LENGTH_LONG).show();
connection = manager.openDevice(driver.getDevice()); connection = manager.openDevice(driver.getDevice());
if (connection == null) { if (connection == null) {
Toast.makeText(getApplicationContext(), "Unknown error", Toast.LENGTH_LONG).show(); Toast.makeText(getApplicationContext(), "Unknown error", Toast.LENGTH_LONG).show();
} else { } else {
UsbSerialPort sPort = null; UsbSerialPort sPort = null;
sPort = driver.getPorts().get(0); sPort = driver.getPorts().get(0);
sPort.open(connection); sPort.open(connection);
Toast.makeText(getApplicationContext(), "Serial Count:" + String.valueOf(driver.getPorts().size()), Toast.LENGTH_LONG).show(); Toast.makeText(getApplicationContext(), "Serial Count:" + String.valueOf(driver.getPorts().size()), Toast.LENGTH_LONG).show();
sPort.close(); sPort.close();
sPort = null; sPort = null;
@ -120,27 +108,15 @@ public class MainActivity extends AppCompatActivity {
goService(); goService();
} }
} }
} } catch (Exception e) {
catch(Exception e)
{
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show(); Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();
} }
} else {
}
else
{
Toast.makeText(getApplicationContext(), "NO USB", Toast.LENGTH_LONG).show(); Toast.makeText(getApplicationContext(), "NO USB", Toast.LENGTH_LONG).show();
} }
} }
@Override @Override
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
@ -148,9 +124,9 @@ public class MainActivity extends AppCompatActivity {
stopService(serviceIntent); stopService(serviceIntent);
serviceIntent = null; serviceIntent = null;
} }
if(usbReceiver!=null) if (usbReceiver != null) {
{
unregisterReceiver(usbReceiver); unregisterReceiver(usbReceiver);
}} }
}
} }

View File

@ -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;
}
}

View File

@ -2,9 +2,6 @@ package com.flywithu.carnav;
import android.app.AlarmManager; import android.app.AlarmManager;
import android.app.Application; import android.app.Application;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent; import android.app.PendingIntent;
import android.app.Service; import android.app.Service;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
@ -13,18 +10,12 @@ import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.hardware.usb.UsbDeviceConnection; import android.hardware.usb.UsbDeviceConnection;
import android.hardware.usb.UsbManager; import android.hardware.usb.UsbManager;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.IBinder; import android.os.IBinder;
import android.util.Log; import android.util.Log;
import android.widget.Toast; import android.widget.Toast;
import androidx.core.app.NotificationCompat;
import com.hoho.android.usbserial.driver.UsbSerialDriver; import com.hoho.android.usbserial.driver.UsbSerialDriver;
import com.hoho.android.usbserial.driver.UsbSerialPort; import com.hoho.android.usbserial.driver.UsbSerialPort;
import com.hoho.android.usbserial.driver.UsbSerialProber; import com.hoho.android.usbserial.driver.UsbSerialProber;
@ -42,8 +33,43 @@ public class RealService extends Service {
public static Intent serviceIntent = null; public static Intent serviceIntent = null;
private static UsbSerialPort sPort = 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() { public RealService() {
} }
@ -54,102 +80,53 @@ public class RealService extends Service {
} }
private synchronized void sendSerial(String str, Charset enc) { 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};
/*
41eca780ec96b4ebb0985a
feff0041c9c0c5b4bc18005a
000000410000c9c00000c5b40000bc180000005a
*/
if (sPort != null) { if (sPort != null) {
try { try {
int len = sPort.write(getStringToByte(str, enc), 3000);
sPort.write(getStringToByte(str,enc), 3000);
// Toast.makeText(getApplicationContext(),String.valueOf(result),Toast.LENGTH_SHORT).show();
sPort.write(new byte[]{0xd}, 3000); sPort.write(new byte[]{0xd}, 3000);
// Toast.makeText(getApplicationContext(),String.valueOf(result2),Toast.LENGTH_SHORT).show();
Log.d("TAG", str); Log.d("TAG", str);
// showToast(getApplication(), "SEND:"+str);
// sPort.write(t1, 3000);
// sPort.write(new byte[]{0xd}, 3000);
//
// sPort.write(t2, 3000);
// sPort.write(new byte[]{0xd}, 3000);
//
// sPort.write(t3, 3000);
// sPort.write(new byte[]{0xd}, 3000);
//
// sPort.write(t4, 3000);
// sPort.write(new byte[]{0xd}, 3000);
} catch (Exception e) { } catch (Exception e) {
showToast(getApplication(), "Error:" + e.toString()); showToast(getApplication(), "Error:" + e.toString());
} }
} } else {
else
{
showToast(getApplication(), "SERIAL NULL"); showToast(getApplication(), "SERIAL NULL");
} }
} }
protected byte[] getStringToByte(String str, Charset enc) {
ByteBuffer buf = ByteBuffer.allocate(150);
protected byte[] getStringToByte(String str,Charset enc)
{
ByteBuffer buf = ByteBuffer.allocate(300);;
/*
sendSerial("U4PL13|soar|");
sendSerial("U4PL23|헤어지자 (Prod. 정키)|");
sendSerial("U4PL33|휘인 (Whee In)|");
*/
String[] arrStr = null; String[] arrStr = null;
if(str.startsWith("U4PL13")||str.startsWith("U4PL23")||str.startsWith("U4PL33")) if (str.startsWith("U4PL13") || str.startsWith("U4PL23") || str.startsWith("U4PL33")) {
{
arrStr = str.split("\\|"); arrStr = str.split("\\|");
// System.out.println(arrStr[1]);
// System.out.println(arrStr[0]);
buf.put(arrStr[0].getBytes(Charset.forName("UTF-8"))); buf.put(arrStr[0].getBytes(Charset.forName("UTF-8")));
buf.put(new byte[]{0x7c}); buf.put(new byte[]{0x7c});
buf.put(arrStr[1].getBytes(enc)); buf.put(arrStr[1].getBytes(enc));
// Log.d("TAG", String.valueOf( buf.position()));
buf.put(new byte[]{0x7c}); buf.put(new byte[]{0x7c});
// System.out.println(new String(buf.array()));
// Log.d("TAG", String.valueOf( buf.position()));
}
else
{
} else {
buf.put(str.getBytes(Charset.forName("UTF-8"))); buf.put(str.getBytes(Charset.forName("UTF-8")));
} }
byte[] bytes = new byte[buf.position()]; byte[] bytes = new byte[buf.position()];
buf.get(bytes,0,buf.position()); buf.flip();
buf.get(bytes);
return bytes; return bytes;
} }
@Override @Override
public int onStartCommand(Intent intent, int flags, int startId) { public int onStartCommand(Intent intent, int flags, int startId) {
serviceIntent = intent; serviceIntent = intent;
showToast(getApplication(), "Start Service"); showToast(getApplication(), "Start Service");
//
// mainThread = new Thread(new Runnable() {
// @Override
// public void run() {
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE); UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
List<UsbSerialDriver> availableDrivers = UsbSerialProber.getDefaultProber().findAllDrivers(manager); List<UsbSerialDriver> availableDrivers = UsbSerialProber.getDefaultProber().findAllDrivers(manager);
if (availableDrivers.isEmpty()) { if (availableDrivers.isEmpty()) {
@ -157,7 +134,6 @@ feff0041c9c0c5b4bc18005a
return START_NOT_STICKY; return START_NOT_STICKY;
} }
// Open a connection to the first available driver.
UsbSerialDriver driver = null; UsbSerialDriver driver = null;
UsbDeviceConnection connection = null; UsbDeviceConnection connection = null;
try { try {
@ -171,7 +147,7 @@ feff0041c9c0c5b4bc18005a
} }
sPort = driver.getPorts().get(0); sPort = driver.getPorts().get(0);
// showToast(getApplication(), driver.getDevice().getProductName());
} catch (Exception e) { } catch (Exception e) {
showToast(getApplication(), e.toString()); showToast(getApplication(), e.toString());
return START_NOT_STICKY; return START_NOT_STICKY;
@ -193,40 +169,18 @@ feff0041c9c0c5b4bc18005a
sPort = null; sPort = null;
return START_NOT_STICKY; return START_NOT_STICKY;
} }
//set the time
//TMST001801140907
//TMST00YYDDDD0907
//TMST001205010916
SimpleDateFormat format1 = new SimpleDateFormat("00yyMMddHHmm"); SimpleDateFormat format1 = new SimpleDateFormat("00yyMMddHHmm");
// String f = format1.format(System.currentTimeMillis()); // String f = format1.format(System.currentTimeMillis());
String currentInfo = format1.format(new Date()); String currentInfo = format1.format(new Date());
String currentTime = String.format("TMST%s", currentInfo); String currentTime = String.format("TMST%s", currentInfo);
sendSerial(currentTime); sendSerial(currentTime);
sendSerial("U4EN00"); 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"));
// sendSerial("U4DI00");
// sendSerial("*R|R1R2R3D1D2A1A3|");
// U4EN00
// *R|R1R2R3D1D2A1A3U4|
// A1PL00
//U4PL03|1,1|0001010000000 U4PL13|soar| U4PL23|헤어지자 (Prod. 정키)| U4PL33|휘인 (Whee In)|
IntentFilter iF = new IntentFilter(); IntentFilter iF = new IntentFilter();
iF.addAction("com.android.music.metachanged"); iF.addAction("com.android.music.metachanged");
iF.addAction("com.htc.music.metachanged"); iF.addAction("com.htc.music.metachanged");
iF.addAction("fm.last.android.metachanged"); iF.addAction("fm.last.android.metachanged");
iF.addAction("com.sec.android.app.music.metachanged"); iF.addAction("com.sec.android.app.music.metachanged");
iF.addAction("com.nullsoft.winamp.metachanged"); iF.addAction("com.nullsoft.winamp.metachanged");
@ -241,36 +195,44 @@ feff0041c9c0c5b4bc18005a
iF.addAction("com.android.music.playstatechanged"); iF.addAction("com.android.music.playstatechanged");
iF.addAction("com.android.music.playbackcomplete"); iF.addAction("com.android.music.playbackcomplete");
iF.addAction("com.android.music.queuechanged"); iF.addAction("com.android.music.queuechanged");
registerReceiver(mReceiver, iF); registerReceiver(mReceiver, iF);
new Thread(new Runnable() { new Thread(new Runnable() {
@Override @Override
public void run() public void run() {
{
boolean myRun = true; boolean myRun = true;
while (myRun) int stopCount = 0;
{ while (myRun) {
try try {
{
Thread.sleep(5000); Thread.sleep(5000);
SimpleDateFormat format1 = new SimpleDateFormat("00yyMMddHHmm"); SimpleDateFormat format1 = new SimpleDateFormat("00yyMMddHHmm");
// String f = format1.format(System.currentTimeMillis());
String currentInfo = format1.format(new Date()); String currentInfo = format1.format(new Date());
String currentTime = String.format("TMST%s", currentInfo); String currentTime = String.format("TMST%s", currentInfo);
sendSerial(currentTime); sendSerial(currentTime);
if (currentSong.isRunning()) {
stopCount = 0;
sendSerial("U4EN00"); sendSerial("U4EN00");
sendSerial("*R|R1R2R3D1D2A1A3U4|"); sendSerial("U4OP00");
sendSerial("U4PL03|5,3|0001010000000"); sendSerial("U4PL03|" + currentSong.getTotal() + "," + currentSong.getPosition() + "|0001010000000");
sendSerial("U4PL13|8소아|",Charset.forName("UTF-8")); sendSerial("U4PL13|" + currentSong.getAlbum() + "|", Charset.forName("UTF-8"));
sendSerial("U4PL23|16헤어지자 (Prod. 정키)|", Charset.forName("UTF-16")); sendSerial("U4PL23|" + currentSong.getTrack() + "|", Charset.forName("UTF-8"));
sendSerial("U4PL33|32휘인 (Whee In)|",Charset.forName("UTF-32")); sendSerial("U4PL33|" + currentSong.getArtist() + "|", Charset.forName("UTF-8"));
} else {
if (stopCount > 5) {
sendSerial("U4DI00");
} }
catch(InterruptedException e) stopCount++;
{ }
} catch (InterruptedException e) {
myRun = false; myRun = false;
} }
@ -281,49 +243,6 @@ feff0041c9c0c5b4bc18005a
}).start(); }).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; return START_NOT_STICKY;
} }
@ -341,10 +260,7 @@ feff0041c9c0c5b4bc18005a
Thread.currentThread().interrupt(); Thread.currentThread().interrupt();
unregisterReceiver(mReceiver); unregisterReceiver(mReceiver);
showToast(getApplication(), "stop Service"); showToast(getApplication(), "stop Service");
// if (mainThread != null) {
// mainThread.interrupt();
// mainThread = null;
// }
} }
@Override @Override
@ -384,60 +300,4 @@ feff0041c9c0c5b4bc18005a
} }
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()));
}
}
/*
2019-09-07 11:47:50.244 7675-7675/com.flywithu.carnav D/MUSIC: artist 없음 (java.lang.String)
2019-09-07 11:47:50.244 7675-7675/com.flywithu.carnav D/MUSIC: albumId 11 (java.lang.Long)
2019-09-07 11:47:50.244 7675-7675/com.flywithu.carnav D/MUSIC: playing true (java.lang.Boolean)
2019-09-07 11:47:50.245 7675-7675/com.flywithu.carnav D/MUSIC: id 50 (java.lang.String)
2019-09-07 11:47:50.245 7675-7675/com.flywithu.carnav D/MUSIC: album Download (java.lang.String)
2019-09-07 11:47:50.245 7675-7675/com.flywithu.carnav D/MUSIC: track I understand (2) (java.lang.String)
2019-09-07 11:47:50.245 7675-7675/com.flywithu.carnav D/MUSIC: vi_direction 2 (java.lang.Long)
2019-09-07 11:47:50.245 7675-7675/com.flywithu.carnav D/MUSIC: listPosition 2 (java.lang.Long)
2019-09-07 11:47:50.245 7675-7675/com.flywithu.carnav D/MUSIC: mediaCount 2 (java.lang.Long)
2019-09-07 11:50:45.186 7675-7675/com.flywithu.carnav D/MUSIC: duration 60000 (java.lang.Long)
2019-09-07 11:50:45.186 7675-7675/com.flywithu.carnav D/MUSIC: playstate true (java.lang.Boolean)
2019-09-07 11:50:45.187 7675-7675/com.flywithu.carnav D/MUSIC: artist 거미 (java.lang.String)
2019-09-07 11:50:45.187 7675-7675/com.flywithu.carnav D/MUSIC: albumId 10314289 (java.lang.String)
2019-09-07 11:50:45.188 7675-7675/com.flywithu.carnav D/MUSIC: playing true (java.lang.Boolean)
2019-09-07 11:50:45.188 7675-7675/com.flywithu.carnav D/MUSIC: id 1 (java.lang.Long)
2019-09-07 11:50:45.189 7675-7675/com.flywithu.carnav D/MUSIC: album 호텔 델루나 OST Part.7 (java.lang.String)
2019-09-07 11:50:45.189 7675-7675/com.flywithu.carnav D/MUSIC: track 기억해줘요 모든 날과 그때를 - 거미 (java.lang.String)
2019-09-07 11:50:45.189 7675-7675/com.flywithu.carnav V/tag: com.android.music.metachanged / null
2019-09-07 11:50:45.189 7675-7675/com.flywithu.carnav V/MUSIC: 거미:호텔 델루나 OST Part.7:기억해줘요 모든 날과 그때를 - 거미
2019-09-07 12:15:16.312 19489-19489/com.flywithu.carnav D/MUSIC: position 38119 (java.lang.Long)
2019-09-07 12:15:16.312 19489-19489/com.flywithu.carnav D/MUSIC: trackLength 162923 (java.lang.Long)
2019-09-07 12:15:16.312 19489-19489/com.flywithu.carnav D/MUSIC: trackLength 162923 (java.lang.Long)
*/
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");
Log.v("MUSIC", artist + ":" + album + ":" + track);
// Toast.makeText(MainActivity.this, track, Toast.LENGTH_SHORT).show();
}
};
} }

View File

@ -4,7 +4,6 @@ import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Build; import android.os.Build;
import android.widget.Toast;
public class RebootReceiver extends BroadcastReceiver { public class RebootReceiver extends BroadcastReceiver {
@Override @Override

View File

@ -9,7 +9,6 @@ import android.content.Intent;
import android.os.Build; import android.os.Build;
import android.os.IBinder; import android.os.IBinder;
import androidx.core.app.NotificationCompat; import androidx.core.app.NotificationCompat;
public class RestartService extends Service { public class RestartService extends Service {

View File

@ -3,6 +3,7 @@ package com.flywithu.carnav;
import org.junit.Test; import org.junit.Test;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Date; import java.util.Date;
@ -57,13 +58,20 @@ public class ExampleUnitTest {
public void checkout() 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 //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 = "A지어반Z"; String test = "";
//EC A7 80 EC 96 B4 EB B0 98 //EC A7 80 EC 96 B4 EB B0 98
//
//
// ec98a4
//feffc624
//0000c624
System.out.println(test); System.out.println(test);
try { try {
System.out.println(bytesToHex(test.getBytes("utf-8"))); System.out.println(bytesToHex(test.getBytes("utf-8")));
System.out.println(bytesToHex(test.getBytes("utf-16"))); System.out.println(bytesToHex(test.getBytes("utf-16")));
System.out.println(bytesToHex(test.getBytes("utf-32"))); 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) catch(Exception e)
{ {