Java 参数 可以是数组或者是集合如何做?
可以直接用Object啊...
因为 Object 可以代指 java里面的任何一种类型
后面不要给[],直接一个Object类型的参数
public void setApp(Object obj){
}
这样就行了...
android设置消息角标
***mi:
当应用向通知栏发送了一条通知 (除了进度条样式和常驻通知外),应用图标的右上角就会显示「1」。值得一提,角标的数字代表应用的通知数,即应用发送了「x」条通知,角标就会显示为「x」。
try {
Field field = notification.getClass().getDeclaredField(“extraNotification”);
Object extraNotification = field.get(notification);
Method method = extraNotification.getClass().getDeclaredMethod(“setMessageCount”, int.class);
method.invoke(extraNotification, mCount);
} catch (Exception e) {
e.printStackTrace();
}
huawei:
BadgeNotification add_num 否 integer 应用角标累加数字非应用角标实际显示数字 例如,某应用当前有N条未读消息,若add_num设置为3,则每发一次消息,应用角标显示的数字累加3,为N+3
public void setBadgeNum(int num) {
try {
Bundle bunlde = new Bundle();
bunlde.putString("package", "com.test.badge"); // com.test.badge is your package name
bunlde.putString("class", "com.test. badge.MainActivity"); // com.test. badge.MainActivity is your apk main activity
bunlde.putInt("badgenumber", num);
this.getContentResolver().call(Uri.parse("content://com.huawei.android.l***ncher.settings/badge/"), "change_badge", null, bunlde);
} catch (Exception e) {
mIsSupportedBade = false;
}
}
oppo:
老版本方法
private static boolean setOPPOBadge(int count, Context context) {
try {
Bundle extras = new Bundle();
extras.putInt("app_badge_count", count);
context.getContentResolver().call(Uri.parse("content://com.android.badge/badge"),
"setAppBadgeCount", String.valueOf(count), extras);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
private static boolean setOPPOBadge2(int count, Context context) {
try {
Intent intent = new Intent("com.oppo.unsettledevent");
intent.putExtra("packageName", context.getPackageName());
intent.putExtra("number", count);
intent.putExtra("upgradeNumber", count);
PackageManager packageManager = context.getPackageManager();
ListResolveInfo receivers = packageManager.queryBroadcastReceivers(intent, 0);
if (receivers != null receivers.size() 0) {
context.sendBroadcast(intent);
} else {
Bundle extras = new Bundle();
extras.putInt("app_badge_count", count);
context.getContentResolver().call(Uri.parse("content://com.android.badge/badge"),
"setAppBadgeCount", null, extras);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
新版本:
新款的OPPO角标功能仅支持内置应用、微信和QQ显示角标,若要使用角标功能,必须提交申请,审核通过了才能开放,官方给的具体审核标准如下:
申请角标接入规则(应用必须适配OPPO手机,保证角标功能测试通过)
a) 系统应用;
b) 国内外各区域用户量排名Top5的三方即时通讯类应用,且只允许显示即时通信消息类通知(如QQ、微信、facebook、line);
c) OPPO公司内部费商业化及运营性质的办公类型即时通信应用(如Teamtalk);
d) 国内外邮件类应用(各区域各属于用户量***梯队的应用)。
vivo:
桌面图标角标”默认关闭,需要用户手动开启。
开启路径:“设置”-“通知与状态栏”-“应用通知管理”-应用名称-“桌面图标角标”。
未成功接入“桌面图标角标”的应用,无“桌面图标角标”选项。
备注:视OS版本差异,“桌面图标角标”名称可能为“应用图标标记”或“桌面角标”。
a. 添加权限:
uses-permission android:name="com.vivo.notification.permission.BADGE_ICON" /
b. 应用在需要显示桌面角标的场景,通过广播将信息发送给vivoL***ncher:
广播参数:
action:l***ncher.action.CHANGE_APPLICATION_NOTIFICATION_NUM
packageName:应用包名
className:主类名
notificationNum:未读消息数目
简单示例:
Intent intent = new Intent();
int missedCalls = 10;
intent.setAction("l***ncher.action.CHANGE_APPLICATION_NOTIFICATION_NUM");
intent.putExtra("packageName", "com.android.xxxx");
intent.putExtra("className", "com.android.xxxx.Mainxxxx");
intent.putExtra("notificationNum", missedCalls);
intent.addFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND);
sendBroadcast(intent);
注意:
在8.0上,还需要给Intent加上下面的flag
Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND
sansung:
private static boolean setSamsungBadge(int count, Context context) {
try {
String l***ncherClassName = getL***ncherClassName(context);
if (TextUtils.isEmpty(l***ncherClassName)) {
return false;
}
Intent intent = new Intent("android.intent.action.BADGE_COUNT_UPDATE");
intent.putExtra("badge_count", count);
intent.putExtra("badge_count_package_name", context.getPackageName());
intent.putExtra("badge_count_class_name", l***ncherClassName);
context.sendBroadcast(intent);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
这是一件让 MacBook 如虎添翼的神器
事出有因,不过归根结底,还是因为触控板太 NB 了。
作为一个 20 年的 Win Boy,虽然早就在连绵不绝的安利声中被灌输了「触控板秒杀触摸板」的观念,但在真正入手 MacBook Pro 13 之前,我对 Mac 触控板的认知还只是停留在四指捏合打开 L***nchpad 这个层级而已。所以,不出意外地,等到真入手了 MBP13,我猝不及防地被触控板给惊艳到了——
如果你对我之前的文章有印象,你应该能知道我之前特别喜欢败鼠标,触控板算是让我彻底戒了鼠标。换到 MBP13 上没过两天,我手上收集的罗技轨迹球鼠标 MX ERGO 和 M570、Evoluent VM4S 都开始进入退役状态了,相反,我入了 Setapp 会员,用上了传说中可以解锁触控板全部姿势的神器,BetterTouchTool,简称 BTT。
上手触控板增强神器 BTT,像是为我瞬间打开了新视界:原来触控板还能这么强?!不过,就像是所有「升级双螺旋」的既定套路一样,用上了 BTT 之后,我又开始止不住地嫌弃 MBP13 自带的触控板太弱鸡。
强大到连触控板都 HOLD 不住的 BTT,到底是什么?
BTT 是 macOS 上与 jitouch 齐名的触控板手势增强软件。
MacBook 的触控板简单来说,就是把触控手势映射成系统动作,比如「四指捏合打开启动台」这个所有 Mac 用户所熟知的手势动作,逻辑上就是把「四指捏合」这个手势,映射成了「打开启动台」这个系统级动作。
BTT 这种触控手势增强软件对触控板的改进和优化,就是为用户提供了更多的手势,和更多可供映射的动作。MacBook 内置的触控板应用,把「手指点按数量」和「手指点按力度(也就是 Force Touch)」这两个手势维度,映射了有限的系统动作。而相比于 MacBook 内置的这套二维手势动作库,BTT 活生生就是一整套的三维手势动作库:
MacBook 内置的手势动作系统和 BTT 配置的手势动作系统之间的复杂程度的区别,可以用下面这个图示来对比:
如果以数量作对比,macOS 内置只有 14 套手势动作可用,而 BTT 光是手势就有超过 100 套,可供映射的系统动作也超过了 100 套,也就是说,BTT 可以提供 n 套手势动作,n = 100 和 100 的自由排列组合(我仅存的数学技能包已经不足以支撑我计算出 n 的值了)。而且,这其中还没有考虑手势映射组合键,因为,MacBook 的按键能创造出多少对组合键我实在是计算不出来……
比如我在系统内置的触控板手势动作之外,用 BTT 自定义了一套自己顺手的手势,举一些常用手势动作的例子:
三指轻拍:
· 在 Safari 中:⌘ + R,刷新当前页面
· 在 Sublime 中:⌘ + M,强制调用默认浏览器预览当前文档
四指轻拍:⌥ + Space,启动 Alfred 搜索框
三指连拍:当前窗口全屏
右侧两指轻拍抵住,随后左指轻拍:复制
单指点击左上角:启动屏幕快照
三指点击:⌘ + W,关闭当前页面
双指点击,右指更重:⌘ + ⌫,强制删除
你看,如果能组建出一整套顺手的手势,那 BTT 几乎可以让你除了输入字符之外的所有操作,都直接在触控板上用手势完成,你不用再在 MacBook 的的键盘上找组合键去截图,也不用在状态栏上拉菜单锁屏,更不用打开终端输入代码来显示 Finder 的隐藏文件,只需要在触控板上打个响指,Duang 一下,你在 Mac 上的工作效率就能起飞。
触控板 HOLD 不住 BTT,不过换上妙控板,还有另外一个原因…
正是因为 BTT 太强大了,所以反过来,一旦使用了 BTT 这种第三方的手势增强软件,我反倒觉得 MacBook 自带触控板会有点力不从心,主要问题是,它对手势的识别精度很难匹配上 BTT 手势的复杂和精细程度。
我使用 MacBook 的 60% 的时间都是在使用编辑器 Sublime 码稿子,所以我用 BTT 给 sublime 定义了一组高频使用手势动作:
· 三指轻拍 ⌘ + M:强制调用默认浏览器预览当前文档
· 三指点击 ⌘ + W:关闭当前文档
这组手势之间的差别不是很大,一个是三指轻拍、另一个是三指点击,但是定义的动作却是大相径庭,一个是预览文档、另一个是关闭文档,所以如果触控板误识别手势,比如把预览文档手势识别成了关闭文档,码稿的节奏肯定就被打断了。但是在码稿时,我经常会遇到触控板误识别这两个手势的情形,一来二去反复被坑,最后我每次在 Sublime 里面用三指手势的时候都得提心吊胆。
连这种算不上复杂的三指手势都很难让我用得放心大胆,你就可以想象当触控板遇到像是什么「两指轻拍抵住左侧第三指左划」「两指点击左指更重」这种刚上手时你自己都控制不住你自己的复杂手势时,最终会演出什么让你预想不到的结局(也是作死,我把这种复杂的手势都绑上了像是什么复制粘贴、强制删除这类高频动作)。
所以,MacBook 自带触控板的好与不好,就为我换上妙控板埋下了伏笔。不过,换妙控板的真正导火索,还是因为 MBP 的触控板不是太好和显示器配合着一起用。
大部分时间,我都是用 MBP 在桌面上办公,本来我的桌面上已经备上了两个宝贝——明基的 27 寸 4K 显示器和 ikbc 的 87 键青轴键盘,所以我自然是不会愿意将就 MBP 自带的 13.3 英寸视屏幕和怼手蝶式键盘了,不过我要真用上外接显示器和键盘,那问题也就来了:连外接显示器,我还怎么爽触控板和 BTT?
是这样?
还是这样?
两种姿势当然都不完美,所以,留给我的选择就只有买妙控板了。
在下单之前,我并没有实际上手体验过妙控板,所以当时下定决心剁手之前我的心思还挺微妙的:淘宝上 700 的价格确实是肉痛,不过妙控板可以完美解决「显示器 + 触控板」这个痛点,而且它的触控面积比 MBP 自带触控板更大,体验也许会更好些?另外,这么贵的配件,如果它识别 BTT 手势的精度能高一截的话,那 700 的价格真是赚到了…
最后,我就这么忐忑地在淘宝上下了单,不过事实证明,迫不得已真入了妙控板之后,结局是出乎意料得完美:
☑ 配合显示器在桌面上使用
☑触控面积大,触感反馈好
☑识别复杂手势精准度更高
在桌面上配合显示器使用这一点,就不细说了,妙控板本身就是为 iMac 和 Mac Pro 这类没有自带触控板的 Mac 设备所设计的,所以在桌面上用本身就是如鱼得水,我更想详细聊的,还是设计到实际体验的后两点:
丨触控面积大,触感反馈好
虽然触控板的体验已经非常优秀了,不过触控面积更大还是能很明显地提升体验,尤其是对于喜欢用多屏显示器的人来说。不管是 Mac 还是 Windows,不管是触控板 / 妙控板还是鼠标,在两块屏幕之间拖鼠标都是挺吃力的一件事儿,触控板的面积更小,就越是容易拖到触控板的边缘、换手的次数也就越高、操控的效率也就越低,这是显而易见的。
妙控板在这方面的优势就是,它的面积更大,它的触控尺寸有 160 × 115mm,比 MBP13 的 135 × 84mm 触控板的触控面积多出了 62%……很夸张对不对?
从 MBP13 的触控板换过来的最初几天,触控面积更大、触控更得心应手是妙控板给我的最初感觉之一,另一个感觉就是,妙控板的触感反馈比 MBP13 的触控板更舒服。
MBP 自带触控板和妙控板都是以 Taptic Engine 模拟真实拍 / 按 / 压的触感,它们都可以达到欺骗触觉神经级别的拟真程度,不过两者模拟出来触感完全不同,我的感觉是,触控板模拟出的感觉类似于按在玻璃瓶铁盖上的那种检查食物是否变质的凸点,触感脆、尖锐,而妙控板模拟出的触感是按在有物理轴的毛玻璃上,触感软、绵长,长时间点按不会像触控板一样累手。
你可能会问,同样是用的 Taptic Engine,妙控板的触感为什么和触控板完全不一样?
因为苹果公开披露的妙控板和触控板的技术资料比较少,第三方的拆解视频又不能直接对比差异,所以我没办法从专业角度对比两者的不同、分析妙控板为什么会比触控板的手势识别精度更高,我猜测可能的解释之一是,妙控板作为单独的外设而不是 MacBook 的机身配件,在设计上不用被厚度、尺寸所局限,所以优化体验的空间更大。例证是,妙控板的触控层玻璃下和铝合金边框之间很明显有预留空间,在手指按压时出了触感反馈之外,妙控板实际上是有一个真实向下的形变的,所以,它的触感反馈会比触控板更真实,或者说,欺骗性更强。
丨识别复杂手势精准度更高
除了触控体验更好,妙控板能够打动我、让我觉得它物超所值到值得为它打 Call,还是因为它确实解决了 MacBook 触控板识别精度不够高的痛点。
很明显的感觉是,换用了妙控板之后,MBP 识别 BTT 复杂手势的成功率提高非常多,基本上一天重度使用下来,也不大会遇到手势被误识别的状况,但是直到现在,MBP 自带触控板还是不太能准确识别到「双指点击右指更重 = ⌘ + ⌫」强制删除这种不算是特别复杂的手势。
所以,一来二去,我会下意识地不是很信任 MBP 的触控板,在办公室我会理所当然地连上显示器、架上键盘用妙控板,而即便是回家之后,我也习惯性地会收纳好妙控板带回家继续用。出了出差没得选,否则能用妙控板我就尽量不用触控板。
这就是我为什么给 MacBook 配上了妙控板。过程很复杂,结局却挺美好。
文末福利
Tip: 数字尾巴公众号(ID: dgtlestyle)聊天框回复“ iOS 经典壁纸
setapp的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于setAppCacheEnabled、setapp的信息别忘了在本站进行查找喔。