Fremden Service aus einer eigenen Delphi App nutzen.

  • Hallo zusammen,


    vermutlich kann mir hier niemand helfen, aber ich versuche es einfach mal.


    Ich habe eine eigene App in Delphi Berlin entwickelt. In dieser app möchte ich ein Service eines Fremdherstellers nutzen.
    In Delphi gibt es ein Beispiel wie das geht. Das Binden von Delphi aus sollte so funktionieren:


    FServiceConnection.BindService('com.btu.monitor.app', 'com.btu.monitor.RAService');


    Doch leider passier nicht. Ich bekomme keine Fehlermeldung, der OnServiceConnected Event wird nicht gefeuert.



    Der Hersteller der Service hat die Bindung so angegeben in Java.

    Java
    String componentName = "com.btu.monitor.app";
    String serviceName = "com.btu.monitor.RAService";
    Intent intent = new Intent();
    intent.setClassName(componentName, serviceName);
    boolean rc = getApplicationContext().bindService(intent, 
                            serviceConnection, Context.BIND_AUTO_CREATE);


    Hat hier jemand Erfahrung mit Delphi wie aus einer Delphi App ein Service eines Fremdherstellers connected werden kann?


    Gruß Kostas

  • Hi Ben,


    ich habe hier ein Beispiel welches funktioniert. Es besteht aus drei Projekten.
    Project1 ist repotehost welches den Service steuert
    Projekt2 ist RemoteService das ist der Service selbst
    Projekt3 ist externalhost das ist die App die repotehost bindet um den Service zu nutzen.


    Das einbinden aus Projekt3 ist ein einzeiler. Das Delphi Beispiel funktioniert einwandfrei. Allerding sind alle drei Projekte mit Delphi erzeugt. Möglicherweise liegt das Problem auch wo anders z.B.: in der AndroidManifest.template.xml oder es fehlen irgend welche Rechte.

    Code
    FServiceConnection.BindService('com.embarcadero.appremotehost',
        'com.embarcadero.services.RemoteService');

    Gruß Kostas

  • Hallo Zusammen,


    ich komme einfach nicht weiter. Deshalb zweifle ich meine Annahme an!
    Ich frage mal in die Runde ob ich das Konzept richtig Verstanden habe bezüglich Service.


    Wenn ich einen Service von einem fremden Hersteller nutzen möchte, benötige ich die App die den Service steuert und den Service selbst.
    Die App die den Service steuert ist der "componentName" und der Service selbst ist der "serviceName" im unterstehenden Beispiel.
    Ich kann also nicht von meiner entwickelten App direkt den Service nutzen ich muss immer über die fremde App die in "componentName" übergeben wird gehen.
    Ist das so richtig? oder muss die eigene App doch in componentName übergeben werden und ich kann doch den Service direkt ansprechen?



    Java
    String componentName = "com.btu.monitor.app";
    String serviceName = "com.btu.monitor.RAService";
    Intent intent = new Intent();
    intent.setClassName(componentName, serviceName);
    boolean rc = getApplicationContext().bindService(intent, 
                            serviceConnection, Context.BIND_AUTO_CREATE);



    Gruß Kostas

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!