Android:系统通知图标

时间:2014-06-15 19:34:28

标签: android android-notifications

我正在开发一个实现vpn服务的Android应用程序。 在VPN连接的生命周期内,将显示系统管理的通知,如文档中所述:http://developer.android.com/reference/android/net/VpnService.html

此通知实际上似乎显示了我作为应用程序图标提供的图标,但我注意到图标在某些设备上调整大小并且其比率已被修改。我根据这里的大小制作了各种启动器图标(ldpi,mdpi ... xxxhdpi):http://developer.android.com/design/style/iconography.html

我哪里错了?系统在哪里获取系统通知图标?

2 个答案:

答案 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,因此我不确定是否有图标,但如果有,则可能硬编码也使用启动器图标,同样的原因。