Android Bluetooth von innerhalb der Service -
Habe ich eine Dienstleistung, die theoretisch arbeiten können, ohne eine Aktivität zugeordnet (als "Dienstleistungen" sollen auf der Android-Plattform).
Dieser Dienst arbeitet mit Bluetooth, die in bestimmten Registern einen Bluetooth-Dienst mit einem bestimmten Namen hört sich das für Kommunikation. Natürlich funktioniert das Bluetooth aktiv ist.
Als auch auf die Bluetooth-api-docs bin ich mit dem BluetoothAdapter.ACTION_REQUEST_ENABLE
den Benutzer auffordern, um Bluetooth zu aktivieren, falls es nicht auf bereits. Dies, obwohl, ist eine Tätigkeit, und daher muss aufgerufen werden, von einer anderen Aktivität, d.h.:
Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
InstanceOfAnActivity.startActivity(enableIntent);
Was würde ich erreichen wollen, ist der service (die, zum Beispiel, startet beim Booten), komplett entkoppelt von jeder Aktivität, und daher würde nicht die InstanceOfAnActivity
zu starten, die pop-up-Einweisung der Benutzer das Bluetooth einschalten.
Nun, ich weiß, dass es die (berüchtigten) Ruf zu BluetoothAdapter.enable()
, aber als der doc sagt, es sollte nicht direkt aufgerufen werden.
So, jeder Tipp/Lösung für dieses dilemma? (Vielleicht ist es einfach und ich bin nur etwas fehlt...)
Wie "Beautiful widgets", um bluetooth einschalten, ohne die Benutzer-Berechtigung ?
InformationsquelleAutor cloud | 2010-03-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
startActivity()
ist nicht unbedingt eine Aktivität Methode - es ist ein Kontext-Methode, geerbt von Aktivität und Service.Es ist eine Sache sich bewusst zu sein, obwohl - wie bereits in der
Service.startActivity()
doc, "wenn diese Methode aufgerufen wird, von außerhalb eine Tätigkeit, Zusammenhang, dann ist die Absicht muss dieFLAG_ACTIVITY_NEW_TASK
Start-flag".So, mit 'Kontext' an die Service-Instanz, sollte die folgenden arbeiten:
InformationsquelleAutor EarlMagnus
Hier ist, was der doc sagt
Beachten Sie, dass es nicht sagen, nicht zu nennen
BluetoothAdapter.enable()
direkt, Sie sagt nur, es zu nennen, wenn Sie bekommen haben das ok vom Benutzer. Das bedeutet, dass Sie benötigen ein Konfigurations-Bildschirm, die den Benutzer fragte, ob es war ok, für Ihren Dienst für bluetooth einschalten und auf diese Weise hätten Sie die Kontrolle über diese.InformationsquelleAutor CaseyB