Нужно исправить ошибку (заставить работать) Service на Android'e

Роман18 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
08.02.2021

Платформа Android (Oculus Go).

Задача - реализовать перезапуск activity при выходе из моего приложения (приложения сделано в Unity) в меню, по нажатию кнопки "меню" на джойстике (по сути заблокировать кнопку).

Далее план таков. Есть простой сервис с синглтоном (extends Service). Есть реакция на нажатие кнопки, приложение пытается перезапустить activity.

Сервис

public class AndroidDaemonService extends Service

{

public static AndroidDaemonService instance = new AndroidDaemonService();

public AndroidDaemonService() {}

public static AndroidDaemonService getInstance()

{

return (instance);

}

@Override public IBinder onBind(Intent intent) {

// TODO: Return the communication channel to the service.

throw new UnsupportedOperationException("Not yet implemented");

}

}

Код запуска

@Override public void onCreate(Bundle savedInstanceState)

{

requestWindowFeature(Window.FEATURE_NO_TITLE);

super.onCreate(savedInstanceState);

String cmdLine = updateUnityCommandLineArguments(getIntent().getStringExtra("unity"));

getIntent().putExtra("unity", cmdLine);

mUnityPlayer = new UnityPlayer(this);

setContentView(mUnityPlayer);

mUnityPlayer.requestFocus();

Intent mServiceIntent = new Intent(this, AndroidDaemonService.class);

this.startService(mServiceIntent);

}

Код, где падает (падает с ошибкой при вызове getPackageName() и/или getPackageManager() )

 @Override protected void onStop()

{

super.onStop();

Context context = AndroidDaemonService.instance;

 Intent launchIntent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());

launchIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

context.startActivity(launchIntent);

}

Ошибка:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.PackageManager android.content.Context.getPackageManager()' on a null object reference

или

java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.PackageManager android.content.Context.getPackageName()' on a null object reference

Я в Android и Java ноль и не могу понять, что не так, вызов или запуск неверный, или разрешения какого-то не хвататет, но думаю человек с опытом найдет тут решение легко, и наверное в одну строку. Я в свою очередь готов тут же потестировать и отблагодарить.

Заявки фрилансеров