再不写个安卓技术文,都要忘了自己其实是做安卓的了。
今天要是实现的就是这种东西
说实话,有点恶心。每次支付宝微信什么的这种未读标志出现的时候就忍不住去点。
好了,我的学习流程是这样的,先在网上搜了下:
看了几篇之后,发现 这个 写的比较用心,除了无形狗粮。
然后找到了 Github 上面的 这个,应该是用的人最多的了。
使用起来非非常的方便:
新建了个工程,在布局中简单写了两个 Button
,一个用来添加未读的标志,一个用来消除未读的标记。
1 | <Button |
然后在代码中添加按钮的点击事件:
1 | mBtAddCount = (Button) findViewById(R.id.bt_addCount); |
灰常快,然后在真机上试了下,能用。(手头只有自己使用的手机,华为荣耀 6。)
再然后,看源码。
怎么说呢,可以这样理解。桌面屏幕其实也是个 Activity 界面,是一个类,Launcher 。修改桌面图标其实就是传一些参数进去,然后调用里面的修改图标的方法。(这个方法各个厂商的实现方式可能都是不一样的,原生其实是没有的,因为有强大的通知栏了,为何要整这种逼死强迫症的东西呢)
需要的参数有包名,类名,和想要设置的数字。移除标志其实就是数字传 0。
不依赖三方库,我自己实现了下,像这样:
1 | Intent launchIntent = getApplicationContext().getPackageManager().getLaunchIntentForPackage(getApplicationContext().getPackageName()); |
运行了下,妥妥的。
烦在哪里呢,安卓严重的碎片化。不同牌子的实现方式就都不一样了,上面只是华为的。
有的手机,例如锤子之类的,只有 System App 才能改。
ShortcutBadger 就是对市场上的绝大多数品牌的手机做了适配。一般手机的实现方式都和上面华为那个差不多,传参数调接口就行了。具体可以看这里。