我正在开发一个实现vpn服务的Android应用程序。 在VPN连接的生命周期内,将显示系统管理的通知,如文档中所述:http://developer.android.com/reference/android/net/VpnService.html
此通知实际上似乎显示了我作为应用程序图标提供的图标,但我注意到图标在某些设备上调整大小并且其比率已被修改。我根据这里的大小制作了各种启动器图标(ldpi,mdpi ... xxxhdpi):http://developer.android.com/design/style/iconography.html
我哪里错了?系统在哪里获取系统通知图标?
答案 0 :(得分:2)
默认情况下,VpnService
与任何Service
一样,会继承您应用中的图标,除非您通过android:icon
在清单中指定一个图标。您应该根据notification icon specifications创建一个图标(Android Asset Studio之类的工具可以提供帮助)并将其设置为您服务的android:icon
:
<service android:name=".ExampleVpnService"
android:icon="@drawable/notification_icon"
android:permission="android.permission.BIND_VPN_SERVICE">
<intent-filter>
<action android:name="android.net.VpnService"/>
</intent-filter>
</service>
答案 1 :(得分:0)
我担心这是不可能的。
Pre-Lollipo,看看Vpn.java:504 - 它会专门加载启动器图标。这似乎是非常慎重的 - 可能是出于安全考虑,以防止误导用户。
将Lollipop发布到“快速设置”界面中moved,因此我不确定是否有图标,但如果有,则可能硬编码也使用启动器图标,同样的原因。