3rd commit - made basic skeleton
This commit is contained in:
parent
039827d078
commit
15728740c5
@ -34,21 +34,18 @@
|
|||||||
</service>
|
</service>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<service
|
||||||
|
android:name=".RestartService"
|
||||||
|
android:enabled="true"
|
||||||
|
android:exported="true" />
|
||||||
|
<receiver android:name=".AlarmReceiver"/>
|
||||||
<receiver android:name=".RebootReceiver">
|
<receiver android:name=".RebootReceiver">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.BOOT_COMPLETED"/>
|
<action android:name="android.intent.action.BOOT_COMPLETED"/>
|
||||||
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
|
|
||||||
<action android:name="android.intent.action.SCREEN_ON" />
|
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</receiver>
|
</receiver>
|
||||||
|
|
||||||
<service
|
|
||||||
android:name=".NotificationListenerMusic"
|
|
||||||
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
|
|
||||||
<intent-filter>
|
|
||||||
<action android:name="android.service.notification.NotificationListenerService" />
|
|
||||||
</intent-filter>
|
|
||||||
</service>
|
|
||||||
|
|
||||||
|
|
||||||
</application>
|
</application>
|
||||||
|
21
app/src/main/java/com/flywithu/carnav/AlarmReceiver.java
Normal file
21
app/src/main/java/com/flywithu/carnav/AlarmReceiver.java
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,5 +1,7 @@
|
|||||||
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;
|
||||||
@ -8,35 +10,26 @@ 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.widget.TextView;
|
import android.util.Log;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
|
||||||
import androidx.core.app.NotificationManagerCompat;
|
|
||||||
|
|
||||||
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.UsbSerialProber;
|
import com.hoho.android.usbserial.driver.UsbSerialProber;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity {
|
public class MainActivity extends AppCompatActivity {
|
||||||
|
|
||||||
public static final String SERVICECMD = "com.android.music.musicservicecommand";
|
|
||||||
public static final String TAG = "carnav";
|
|
||||||
static final String ACTION_USB_PERMISSION = "com.flywithu.carnav.USB_PERMISSION";
|
|
||||||
private Intent serviceIntent;
|
private Intent serviceIntent;
|
||||||
|
public static final String SERVICECMD = "com.android.music.musicservicecommand";
|
||||||
|
public static final String TAG="carnav";
|
||||||
|
static final String ACTION_USB_PERMISSION = "com.flywithu.carnav.USB_PERMISSION";
|
||||||
private BroadcastReceiver usbReceiver = null;
|
private BroadcastReceiver usbReceiver = null;
|
||||||
|
private void goService()
|
||||||
private void goService() {
|
{
|
||||||
|
|
||||||
|
|
||||||
if (RealService.serviceIntent == null) {
|
if (RealService.serviceIntent == null) {
|
||||||
|
|
||||||
serviceIntent = new Intent(this, RealService.class);
|
serviceIntent = new Intent(this, RealService.class);
|
||||||
startService(serviceIntent);
|
startService(serviceIntent);
|
||||||
Toast.makeText(getApplicationContext(), "new start", Toast.LENGTH_LONG).show();
|
|
||||||
} else {
|
} else {
|
||||||
serviceIntent = RealService.serviceIntent;//getInstance().getApplication();
|
serviceIntent = RealService.serviceIntent;//getInstance().getApplication();
|
||||||
Toast.makeText(getApplicationContext(), "already", Toast.LENGTH_LONG).show();
|
Toast.makeText(getApplicationContext(), "already", Toast.LENGTH_LONG).show();
|
||||||
@ -44,51 +37,23 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private boolean isNotiPermissionAllowed() {
|
|
||||||
Set<String> notiListenerSet = NotificationManagerCompat.getEnabledListenerPackages(this);
|
|
||||||
String myPackageName = getPackageName();
|
|
||||||
|
|
||||||
for (String packageName : notiListenerSet) {
|
|
||||||
if (packageName == null) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (packageName.equals(myPackageName)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_main);
|
setContentView(R.layout.activity_main);
|
||||||
|
|
||||||
|
|
||||||
boolean isPermissionAllowed = isNotiPermissionAllowed();
|
|
||||||
|
|
||||||
if (!isPermissionAllowed) {
|
|
||||||
Intent intent = new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS");
|
|
||||||
startActivity(intent);
|
|
||||||
} else {
|
|
||||||
((TextView) findViewById(R.id.textViewNotificationStatus)).setText((isNotiPermissionAllowed()) ? "OK" : "NO");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
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()) {
|
||||||
Toast.makeText(getApplicationContext(), "USB Exist", Toast.LENGTH_LONG).show();
|
Toast.makeText(getApplicationContext(),"USB Exist",Toast.LENGTH_LONG).show();
|
||||||
|
|
||||||
UsbSerialDriver driver = null;
|
UsbSerialDriver driver = null;
|
||||||
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
|
||||||
@ -100,51 +65,64 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
new Intent(ACTION_USB_PERMISSION), PendingIntent.FLAG_ONE_SHOT);
|
new Intent(ACTION_USB_PERMISSION), PendingIntent.FLAG_ONE_SHOT);
|
||||||
//
|
//
|
||||||
|
|
||||||
usbReceiver = new BroadcastReceiver() {
|
usbReceiver=new BroadcastReceiver() {
|
||||||
@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);
|
||||||
goService();
|
goService();
|
||||||
} else {
|
}
|
||||||
Toast.makeText(getApplicationContext(), "Pemission Denied", Toast.LENGTH_LONG).show();
|
else
|
||||||
|
{
|
||||||
|
Toast.makeText(getApplicationContext(), "Pemission Denied", Toast.LENGTH_LONG);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
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 {
|
|
||||||
Toast.makeText(getApplicationContext(), "Has Permission", Toast.LENGTH_LONG).show();
|
}
|
||||||
|
else {
|
||||||
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);
|
||||||
} else {
|
} else {
|
||||||
UsbSerialPort sPort = null;
|
|
||||||
sPort = driver.getPorts().get(0);
|
|
||||||
sPort.open(connection);
|
|
||||||
Toast.makeText(getApplicationContext(), "Serial Count:" + driver.getPorts().size(), Toast.LENGTH_LONG).show();
|
|
||||||
|
|
||||||
sPort.close();
|
|
||||||
|
|
||||||
goService();
|
goService();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
|
||||||
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();
|
|
||||||
}
|
}
|
||||||
} else {
|
catch(Exception e)
|
||||||
Toast.makeText(getApplicationContext(), "NO USB", Toast.LENGTH_LONG).show();
|
{
|
||||||
|
e.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Toast.makeText(getApplicationContext(),"NO USB",Toast.LENGTH_LONG).show();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -154,9 +132,9 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
stopService(serviceIntent);
|
stopService(serviceIntent);
|
||||||
serviceIntent = null;
|
serviceIntent = null;
|
||||||
}
|
}
|
||||||
if (usbReceiver != null) {
|
if(usbReceiver!=null)
|
||||||
|
{
|
||||||
unregisterReceiver(usbReceiver);
|
unregisterReceiver(usbReceiver);
|
||||||
}
|
}}
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,7 @@ import android.hardware.usb.UsbManager;
|
|||||||
import android.media.RingtoneManager;
|
import android.media.RingtoneManager;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
|
|
||||||
@ -41,6 +42,7 @@ public class RealService extends Service {
|
|||||||
private static UsbSerialPort sPort = null;
|
private static UsbSerialPort sPort = null;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public RealService() {
|
public RealService() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,14 +104,16 @@ feff0041c9c0c5b4bc18005a
|
|||||||
connection = manager.openDevice(driver.getDevice());
|
connection = manager.openDevice(driver.getDevice());
|
||||||
if (connection == null) {
|
if (connection == null) {
|
||||||
showToast(getApplication(), "No connection");
|
showToast(getApplication(), "No connection");
|
||||||
// You probably need to call UsbManager.requestPermission(driver.getDevice(), ..)
|
|
||||||
return START_NOT_STICKY;
|
return START_NOT_STICKY;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
sPort = driver.getPorts().get(0);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
showToast(getApplication(), e.toString());
|
showToast(getApplication(), e.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
sPort.open(connection);
|
sPort.open(connection);
|
||||||
sPort.setParameters(19200, 8, UsbSerialPort.STOPBITS_1, UsbSerialPort.PARITY_NONE);
|
sPort.setParameters(19200, 8, UsbSerialPort.STOPBITS_1, UsbSerialPort.PARITY_NONE);
|
||||||
|
|
||||||
@ -188,7 +192,10 @@ feff0041c9c0c5b4bc18005a
|
|||||||
iF.addAction("com.rdio.android.metachanged");
|
iF.addAction("com.rdio.android.metachanged");
|
||||||
iF.addAction("com.samsung.sec.android.MusicPlayer.metachanged");
|
iF.addAction("com.samsung.sec.android.MusicPlayer.metachanged");
|
||||||
iF.addAction("com.andrew.apollo.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);
|
registerReceiver(mReceiver, iF);
|
||||||
return START_NOT_STICKY;
|
return START_NOT_STICKY;
|
||||||
}
|
}
|
||||||
@ -205,7 +212,7 @@ feff0041c9c0c5b4bc18005a
|
|||||||
serviceIntent = null;
|
serviceIntent = null;
|
||||||
setAlarmTimer();
|
setAlarmTimer();
|
||||||
Thread.currentThread().interrupt();
|
Thread.currentThread().interrupt();
|
||||||
|
unregisterReceiver(mReceiver);
|
||||||
// if (mainThread != null) {
|
// if (mainThread != null) {
|
||||||
// mainThread.interrupt();
|
// mainThread.interrupt();
|
||||||
// mainThread = null;
|
// mainThread = null;
|
||||||
@ -241,7 +248,7 @@ feff0041c9c0c5b4bc18005a
|
|||||||
final Calendar c = Calendar.getInstance();
|
final Calendar c = Calendar.getInstance();
|
||||||
c.setTimeInMillis(System.currentTimeMillis());
|
c.setTimeInMillis(System.currentTimeMillis());
|
||||||
c.add(Calendar.SECOND, 1);
|
c.add(Calendar.SECOND, 1);
|
||||||
Intent intent = new Intent(this, AlarmRecever.class);
|
Intent intent = new Intent(this, AlarmReceiver.class);
|
||||||
PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent, 0);
|
PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent, 0);
|
||||||
|
|
||||||
AlarmManager mAlarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
|
AlarmManager mAlarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
|
||||||
@ -260,13 +267,46 @@ feff0041c9c0c5b4bc18005a
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.toString();
|
e.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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:기억해줘요 내 모든 날과 그때를 - 거미
|
||||||
|
*/
|
||||||
String action = intent.getAction();
|
String action = intent.getAction();
|
||||||
String cmd = intent.getStringExtra("command");
|
String cmd = intent.getStringExtra("command");
|
||||||
Log.v("tag ", action + " / " + cmd);
|
Log.v("MUSIC ", action + " / " + cmd);
|
||||||
String artist = intent.getStringExtra("artist");
|
String artist = intent.getStringExtra("artist");
|
||||||
String album = intent.getStringExtra("album");
|
String album = intent.getStringExtra("album");
|
||||||
String track = intent.getStringExtra("track");
|
String track = intent.getStringExtra("track");
|
||||||
Log.v("tag", artist + ":" + album + ":" + track);
|
Log.v("MUSIC", artist + ":" + album + ":" + track);
|
||||||
|
|
||||||
|
|
||||||
// Toast.makeText(MainActivity.this, track, Toast.LENGTH_SHORT).show();
|
// Toast.makeText(MainActivity.this, track, Toast.LENGTH_SHORT).show();
|
||||||
|
@ -8,9 +8,8 @@ import android.os.Build;
|
|||||||
public class RebootReceiver extends BroadcastReceiver {
|
public class RebootReceiver extends BroadcastReceiver {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
Intent in = new Intent(context, RealService.class);
|
Intent in = new Intent(context, RestartService.class);
|
||||||
context.startForegroundService(in);
|
context.startForegroundService(in);
|
||||||
} else {
|
} else {
|
||||||
Intent in = new Intent(context, RealService.class);
|
Intent in = new Intent(context, RealService.class);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user