我用Delphi 10.3完成的应用程序正在android版本7上成功启动并监控我的android服务。但在Android版本8以上,我发现错误:
java.lang.IllegalStateException:不允许启动Intent... app在后台uid为空
发现从版本8开始,Android已更改策略。我应该使用startForegroundService,但我不清楚如何从服务中响应以通知Android并允许启动。(找不到Delphi示例)
开启服务代码
procedure TfrmStarter.StartBLEService;
var
Intent : JIntent;
NativeComponent : JComponentName;
PackageName, AppName : JString;
begin
PackageName := StringToJString('com.embarcadero.LysaAdmin');
AppName := StringToJString('com.embarcadero.services.BLEService');
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_MAIN);
Intent.addCategory(TJIntent.JavaClass.CATEGORY_LAUNCHER);
NativeComponent := TJComponentName.JavaClass.init(PackageName, AppName);
Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK or TJIntent.JavaClass.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
Intent.setComponent(NativeComponent);
SharedActivity.startService(Intent); //<< This work's fine Android 7
// SharedActivity.startForegroundService(Intent); //<< Android 8.1 not getting errors but service is not started
end;
服务启动命令代码
function TDM.AndroidServiceStartCommand(const Sender: TObject;
const Intent: JIntent; Flags, StartId: Integer): Integer;
begin
Result := TJService.JavaClass.START_STICKY;
end;
Delphi提供了在一行中启动服务的能力
使用系统。Android服务
...
TLocalServiceConnection。StartService(“service\u name”);
service\u name-仅服务名称,不带包(com.embarcadero.)!
好吧,这就是问题所在。我做,但我没有从或获得新的日志消息。 舱单: null 活动代码: 我试过什么: 将所有“cont”更改为“this” StartService(新意图(cont,FlashService.class)); null 更新: 完整活动代码:
我们最近升级到k8s版本1.20.9,不确定这是否是根本原因,但SCDF服务器pod未能出现以下错误。 我通常使用基于kubectl的部署来部署scdf服务器。 有人知道吗?以下附加错误。 2022-01-05 05:08:56.207信息1---[main]o.a.coyote.http11.Http11NioProtocol:Starting ProtocolHandler[“http-nio
我刚开始在我的电脑上安装Xampp和MySQL。然后当我想从xampp控制面板启动MySQL时,它不起作用。 控制面板中的消息说“正在尝试启动MySQL服务…”,但状态不会变为绿色(我启动了Apache,它可以工作) 我曾尝试重新安装MySQL和Xampp,但没有成功。谷歌搜索也没有多大帮助。 我已经检查过MySQL服务正在3306端口上运行。有时当我试图从Xampp控制面板启动MySQL时,它说
我在MAMP上的Mysql服务器无法启动。这是错误: 161224 00:15:00 mysqld\u安全日志记录到“/Applications/MAMP/logs/mysql\u error\u log.err”。161224 00:15:00 mysqld_safe使用/Applications/MAMP/db/mysql56中的数据库启动mysqld守护进程161224 00:15:01 m
严重:启动java.util.concurrent.ExecutionException时子容器失败:org.apache.Catalina.LifeCycleException:启动组件[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/HelloWorldRestService]](位于java.util.con
我已经用WinRun4J创建了一个windows服务。应用程序已成功安装为服务。但是,当我尝试在命令提示符下使用run