2016-05-05 9 views
0

Zunächst einmal, vielen Dank für Ihre Hilfe.Verwenden Sie benutzerdefinierte Systemdienst in App (Android Studio)

Hier ist mein Problem.

  1. Ich habe einen benutzerdefinierten Systemdienst (es verbindet sich durch den Ordner und Haken in den Systemserver, dann in die HAL, etc) gemacht. Einer der Hauptbefehle ist isBacklightOn(). Ich habe auch das make update-api ausgeführt, um es in meinen ROM-Build aufzunehmen.
  2. Ich bin jetzt bereit, die Funktionalität mit einer App zu testen. Ich verwende den folgenden Code ein:

import android.os.BacklightManager; //My service manager name 
 

 
... 
 
BacklightManager bm = (BacklightManager) getSystemService(BACKLIGHT_SERVICE); 
 
... 
 

 
if(!bm.isBacklightOn()) { 
 
    //Turn it on. 
 
} else { 
 
    //Other Things... 
 
}

Mein Problem tritt auf, weil Android Studio nicht die Anwendung erstellen wegen nicht zu wissen, was der BacklightManager ist. Wie kann ich diese Anwendung erstellen, um meinen Code zu testen? (Importieren Sie etwas in Android Manager, Erzwingen eines Builds, der Fehler ignoriert, usw.)

+0

Hallo, ich habe das gleiche Problem, stört es mir zu sagen, wie Sie es gelöst haben? –

+0

Tom, ich war nicht in der Lage, diese Lösung perfekt funktionieren zu lassen. Eine mögliche Lösung besteht darin, die App in Android Studio zu erstellen und sie dann mit dem Android-Systemschlüssel zu signieren, sodass sie im Wesentlichen eine System-App ist (genauso wie sie mit AOSP erstellt wird). Dies macht es unnötig, dass die App das SDK verwendet, um auf einen der Dienste in Android zuzugreifen. Eine andere (die "richtige" Lösung) besteht darin, sich die Informationen anzusehen, die Dave Smith über SDK Add-Ons gegeben hat. Dies ist möglicherweise der bessere Weg, um es zu tun, aber ich habe es nicht intensiv betrachtet. –

+0

Ich habe die AIDL meines Dienstes in mein Projekt importiert, ich kann es jetzt kompilieren. Aber wenn ich rufe customService = (MyCustomService) getSystemService ("MyCustomservice") customService bleibt null. Ich kann meinen Dienst mit Service-Liste in der Shell ausgeführt sehen – maggocnx

Antwort

0

Es sieht so aus, als ob die Lösung darin besteht, ein benutzerdefiniertes SDK in der AOSP-Build-Umgebung zu erstellen. Und dann importieren Sie das in Android Studio

Verwandte Themen