2017-04-09 2 views
-1

Ich versuche, um eine Erlaubnis auf meinem Service zu bitten. Normalerweise muss ich eine Aktivität übergeben, um eine Erlaubnis zu erhalten. Meine Anwendung hat keine Activity.So fordern Sie eine Erlaubnis von einem Service an

// Here, thisActivity is the current activity 
if (ContextCompat.checkSelfPermission(thisActivity, 
       Manifest.permission.READ_CONTACTS) 
     != PackageManager.PERMISSION_GRANTED) { 

    // Should we show an explanation? 
    if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity, 
      Manifest.permission.READ_CONTACTS)) { 

     // Show an explanation to the user *asynchronously* -- don't block 
     // this thread waiting for the user's response! After the user 
     // sees the explanation, try again to request the permission. 

    } else {  
     ActivityCompat.requestPermissions(thisActivity, 
       new String[]{Manifest.permission.READ_CONTACTS}, 
       MY_PERMISSIONS_REQUEST_READ_CONTACTS); 
    } 
} 

Wie kann ich es von einem Service aus tun?

+0

Wieso wurde ich abgelehnt? Dies ist eine gültige Frage. Bitte erkläre, wenn ich falsch liege, werde ich gerne meine Frage entfernen. –

Antwort

2

Anfrage für die Erlaubnis von einem Dienst hat keinen Sinn. Beachten Sie, dass Sie einem Benutzer um Erlaubnis bitten, wenn die Anwendung auf einige Systemfunktionen zugreifen muss. Sie müssen daher in Ihrer Aktivität einen Benutzer um eine Berechtigung bitten und dann Ihren Dienst starten.

+0

Wenn Sie feststellen, dass Ihr Dienst nach dem Start keine Berechtigung hat - zum Beispiel wird der Dienst von "JobScheduler" gestartet - können Sie eine "Benachrichtigung" auslösen, um den Benutzer aufzufordern, die Erlaubnis zu erteilen, und dann ruhig herunterfahren dein Dienst. – CommonsWare

+0

Meine Anwendung hat keine 'Aktivität'. –

+0

"Antrag auf Erlaubnis von einem Dienst hat keinen Sinn." Da meine Bewerbung keine "Aktivität" hat, ist es sinnvoll, im "Service" nachzufragen. –

Verwandte Themen