java 代码 需编译为 jar ,加入工程中。
jar 调用接口,需转换为 pas ,加入到工程中。
具体 编译和转换,请到别的帖子找。作者: wang_80919 时间: 2016-12-4 18:00
[mw_shl_code=delphi,true]procedure TAndroidServiceDM.AndroidServiceStratApp(Msg:string);
var
launchintent: JIntent;
begin
launchintent := TJIntent.JavaClass.init;
launchintent.setClassName(
TAndroidHelper.Context,
StringToJString('com.embarcadero.firemonkey.FMXNativeActivity'));
launchintent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
launchintent.putExtra(StringToJString('FlyService'),
StringToJString('1'));
launchintent.putExtra(StringToJString(Msg),
StringToJString('1'));
TAndroidHelper.Context.startActivity(launchintent);
PostToast('APP 通过服务启动了!');
end;
function TAndroidServiceDM.AndroidServiceStartCommand(const Sender: TObject;
const Intent: JIntent; Flags, StartId: Integer): Integer;
var
MyNotification : TNotification;
AVal: JString;
begin
Result := TJService.JavaClass.START_STICKY;
try
PostToast('服务启动了');
if Intent <> nil then
begin
AVal := Intent.getStringExtra(StringToJString('AutoRunApp'));
if Assigned(AVal) then
begin
PostToast('收到启动 APP 命令');
AndroidServiceStratApp('AutoRunApp');
end;
end;
if Intent <> nil then
begin
AVal := Intent.getStringExtra(StringToJString('BOOT_COMPLETED'));
if Assigned(AVal) then
begin
PostToast('一会 APP 会自动启动。');
AndroidServiceStratApp('BOOT_COMPLETED');
end;
end;