我写了一个服务,它包含在APK中。在这个APK中,我没有任何活动。该定义如下:am startservice没有网络权限
<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>
我编译它,并通过点安装APK安装在一个真正的Android手机,我尝试通过这个命令来启动该服务:
am startservice --user 0 -n com.blackforest.service/.KeyService
该服务可正确启动。但似乎这个服务没有网络权限。因为它发送请求,我得到了以下错误:
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)
我绝对肯定域bf.xxxx.com是通过该手机访问。
我做了一些改动,在这个APK中添加了一个空白的活动,然后重新安装它。首先,我在屏幕上启动了该活动,然后通过startservice启动该服务。目前,该服务运行良好。
我的问题是,为什么服务没有网络权限,如果只有APK中的服务通过am命令引导?
说明是丑陋的预期!非常感谢。
整个manifest.xml的是:
<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:机器人在这个移动是4.4.4
你能否把整个清单?只是看到您添加的权限 – Timo
@Timo刚添加,谢谢 – simonzhang
和哪个版本的android? – Timo