Ich habe einen Dienst geschrieben, der in einer APK enthalten ist. In dieser APK habe ich überhaupt keine Aktivität. Die Definition ist wie folgt:am startservice hat keine Netzwerkberechtigung
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<service android:name="com.blackforest.service.KeyService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.blackforest.service.KeyService"/>
</intent-filter>
</service>
</application>
ich es kompiliert und die APK per pm installieren in einem echten Android-Handy installieren, und ich versuche, diesen Dienst über diesen Befehl zu starten:
am startservice --user 0 -n com.blackforest.service/.KeyService
Dieser Service kann korrekt gebootet werden. Es scheint jedoch, dass dieser Dienst nicht über die Netzwerkberechtigung verfügt. wie er die Anfrage senden, habe ich die folgenden Fehler:
02-23 16:22:29.685 22689-22714/com.blackforest.service W/System.err: java.net.UnknownHostException: Unable to resolve host "bf.xxxx.com": No address associated with hostname
02-23 16:22:29.686 22689-22714/com.blackforest.service W/System.err: at java.net.InetAddress.lookupHostByName(InetAddress.java:424)
02-23 16:22:29.686 22689-22714/com.blackforest.service W/System.err: at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
02-23 16:22:29.686 22689-22714/com.blackforest.service W/System.err: at java.net.InetAddress.getAllByName(InetAddress.java:214)
02-23 16:22:29.686 22689-22714/com.blackforest.service W/System.err: at okhttp3.Dns$1.lookup(Dns.java:39)
Ich bin auf jeden Fall sicher, dass die Domain bf.xxxx.com über dieses Handy erreichbar ist.
Und ich habe eine kleine Änderung vorgenommen, eine leere Aktivität in diesem APK hinzufügen und neu installieren. Zuerst startete ich die Aktivität auf dem Bildschirm und startete dann den Dienst über einen Startservice. Zu dieser Zeit funktioniert der Service sehr gut.
Meine Frage ist, warum der Dienst keine Netzwerkberechtigung hat, wenn nur der Dienst im APK über den Befehl am läuft?
Erklärung ist hässlich erwartet! Vielen Dank.
Das gesamte manifest.xml ist:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<service android:name="com.blackforest.service.KeyService"
android:enabled="true"
android:exported="true"
>
<intent-filter>
<action android:name="com.blackforest.service.KeyService"/>
</intent-filter>
</service>
<activity android:name=".MainActivity">
</activity>
</application>
PS: Android in diesem Mobile 4.4.4
Konnte Sie das setzen gesamtes Manifest? Nur um die Erlaubnis zu sehen, die Sie hinzufügen – Timo
@Timo gerade hinzugefügt, danke – simonzhang
Und welche Version von Android? – Timo