Плагин для приложения Android не может найти службуJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Плагин для приложения Android не может найти службу

Сообщение Anonymous »

Я и моя команда работаем над плагином для Android-приложения CivTAK. Плагины в контексте этого приложения рассматриваются как отдельные приложения, имеющие только Службу и не имеющее Действия, которые обнаруживаются основным приложением с определенным намерением, которое оно ищет.
Мы пытаемся интегрировать Reticulum Network Stack в CivTAK в рамках нашего старшего дизайнерского проекта и изначально пытались полностью работать с плагином, но в конечном итоге столкнулись с конфликтами между его средой и мостом, который мы использовали для интеграции сетевого стека на основе Python, Chaquopy.Это приведет к нам изучили, как аналогичные плагины решают эту проблему, и увидели, что Meshtastic решает ее, привязывая свой плагин CivTAK к удаленной службе Foreground Service, созданной их приложением Android, в котором размещается сетевой стек.
Мы решили продолжить этот подход и начали разработку отдельного приложения, основанного на их подходе к созданию службы, на которой будет размещаться RNS. Приложение успешно загружается и создает экземпляр службы на основе того, что происходит в отладчике, и отзывов от logcat; он также появляется в списке служб на наших телефонах с Android 12 (но не на наших телефонах с Android 13).
Когда плагин CivTAK пытается привязаться к службе, метод bindService возвращает false, а logcat отображает ошибку. сообщение

Невозможно запустить службу. Намерение { cmp="com.ed2group.RTAKService/.RNSService } U=0: не найдено

Приложение-служба MainActivity

Код: Выделить всё

public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent(this, RNSService.class);
startForegroundService(intent);
finish();
}
}
Служба приложения-службы Foreground Service onCreate

Код: Выделить всё

package com.ed2group.RTAKService;

public class RNSService extends android.app.Service {
\\ Stripped out Binder Stub definitions, members, and assistive methods

@Override
public void onCreate() {
try {
// RNS & misc initialization code.

startForeground(21124, createNotification());

Log.i(TAG, "onCreate: Initialization successful!");
}
catch (Exception e) {
Log.e(TAG, "onCreate: ", e);
}
}
Приложение-служба AndroidManifest.xml Фрагмент точки привязки службы плагина CivTAK

Код: Выделить всё

rtakServiceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
Toast.makeText(mapView.getContext(), "Successfully connected to RTAKService", Toast.LENGTH_LONG).show();
rtakService = IRNSService.Stub.asInterface(iBinder);
isConnected = true;
}

@Override
public void onServiceDisconnected(ComponentName componentName) {
Toast.makeText(mapView.getContext(), "Disconnected from RTAKService", Toast.LENGTH_LONG).show();
rtakService = null;
isConnected = false;
}
};

Intent serviceIntent = new Intent();
serviceIntent.setClassName("com.ed2group.RTAKService", ".RNSService");

if (!pluginContext.bindService(serviceIntent, rtakServiceConnection, Context.BIND_AUTO_CREATE)) {
Toast.makeText(mapView.getContext(), "Failed to connect to RTAKService", Toast.LENGTH_LONG).show();
return;
}

Плагин CivTAK AndroidManifest.xml Если потребуются еще примеры, не бойтесь спрашивать их, или я могу дать вам ссылку на наши репозитории.
Я попробовал следуйте нескольким ресурсам, касающимся связанных сервисов, которые я смог найти в Google, Reddit и YouTube, но ошибка все равно останется прежней. Я также экспериментировал с тем, чтобы сделать его обычным фоновым сервисом, но тоже безуспешно.
Буду очень признателен за любую помощь в связывании нашего плагина с нашим Сервисом, TYVM.< /п>

Подробнее здесь: https://stackoverflow.com/questions/791 ... te-service
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»