日期: 2021 年 4 月 10 日

14 年的 Android 手机如何升级系统?

RT,昨晚爸爸拿了一台 14 年产的手机,型号是酷派 V1-C,系统是 Android 4.4.4 的,问我还能不能用?我看了一下配置,处理器是骁龙 801,运存 3G,勉强还可以用。但是因为系统太老,连微信都无法安装,这个手机型号在网上也没找到刷机包,还有救吗?能否有其它办法升级系统? PS:这手机 2K(2560×1440)超清屏,491PPI,wifi 还支持 5G 频段,物理隔离双系统…这些配置和功能挺超前的啊,前几年都还有其它厂商拿来出吹呢…以前酷派这个品牌确实挺火的,现在怎么感觉在垂死边缘了?

第 1 条附言  ·

看了一下各位的建议,好像基本没戏。APP 老版本我尝试过,虽然可以用,但是部分功能模块会出问题。我是准备给他选一个红米的,想着又便宜性能又好,但因为他现在用的是华为(他不懂手机,平常也就玩玩微信,刷刷抖音啥的),问他想要什么手机,他也只知道华为,我又担心如果不给他买华为,他用着出啥问题还得我背锅。
2000 以内的华为手机各位有什么好推荐的吗?
27 条回复    2021-02-07 04:01:03 +08:00
gam2046
    1

gam2046   107 天前

酷派大概率就节哀吧

Android 4 和 Android 7 的 HAL 层有大改,vendor 几乎没有可能直接重用。要不 HAL 层对应的修改,要不该 vendor 。前者工程量巨大,后者你没源码,有也同样有非常大的工程量。

有这精力,还不如买个新的千元机。

ysc3839
    2

ysc3839   107 天前 via Android

801 的话理论上能跑 Android 10 的。比如三星 S5 仍然可以运行基于 Android 10 的 LineageOS 。
但是对于非热门机型那还是别想了,除非你愿意自己适配。
LiYanHong
    3

LiYanHong   107 天前

看看老点版本的微信还能用不咯
hikari2
    4

hikari2   106 天前

早期安卓分为支持安卓 5 和不支持的,支持安卓 5 的基本上都能上 789
gason406
    5

gason406   106 天前   ❤️ 1

当年还在吹中华酷联米的,*后混出来的也就剩华为小米了
ShallowAi
    6

ShallowAi   106 天前 via Android

14 年能解锁 BL 或者预先解锁的安卓机 只要还有人做包那就能升级

酷派啊 早跑路了 基本没人做了 你要是说小米 2s 都还有安卓 10

PhxNirvana
    7

PhxNirvana   106 天前

801 应该是 32 位 cpu,可以放弃了
Lemeng
    8

Lemeng   106 天前

酷派啊,熟悉又陌生的名字
hfJ433
    9

hfJ433   106 天前   ❤️ 6

老丈人的意思想你买部新手机给他,让你表现一下。
a5b6c7d8
    10

a5b6c7d8   106 天前 via Android

1599 软妹币就可以升级吧

hantsy
    11

hantsy   106 天前

太老了,建议 800 块升级红米。
JensenQian
    12

JensenQian   106 天前

14 年的手机还是换个新的吧,现在手机很便宜了,包括 5G 手机,千元以内或者左右都有挺好的选择,
JensenQian
    13

JensenQian   106 天前

@JensenQian #12 这机子翻了下真的没啥包了,我之前小米 4 刷过安卓 10 的魔趣,但是还是卡的不行,基本没法用,801 现在也该退休了,https://www.wandoujia.com/apps/596157/history 豌豆荚有历史版本的微信,*旧的的 5.1 版本的微信,14 年的应该可以装上去
a570295535
    14

a570295535   106 天前

给你个老版本可以正常登录使用的微信,
解压后安装 apk 即可:
https://xsz.lanzous.com/i7iofjoaaqj
noahhhh
    15

noahhhh   106 天前 via Android

买新机吧
fox0001
    16

fox0001   106 天前

掏腰包更新,RMB 大法好~
systemcall
    17

systemcall   106 天前

酷派的可以放弃了,没有厂家的支持哪来的大改动的第三方?
要是是小米 note 也许有戏,也是 801 32 位,官方有新一些的系统
4.4 默认还是 Dalvik 吧,后面都换成 ART 了。系统的结构都差得远。你要是有个安卓 6.0 的原厂固件,倒是有可能改出来新版本系统
CBS
    18

CBS   106 天前

建议给 l 老丈人买个小米 MAX3
miaomiao888
    19

miaomiao888   106 天前

恢复下出厂,6.7.3 的微信包括支付能用,QQ 国际版能用,ZFB 也能用,抖音好像也可以
USAA
    20

USAA   106 天前

百度
V1-C 刷机包
如果有就有,没有就没有
angrylid
    21

angrylid   106 天前 via Android

两千元内华为手机竞争力不强,要不弄台老旗舰,要不荣耀。
dingwen07
    22

dingwen07   106 天前

2000 以内华为手机,如果不包括荣耀,建议不要考虑。
taobibi
    23

taobibi   106 天前

V1-C 这个手机我有同款。当初这个手机叫酷派伯顿(伯爵?)记不清了。
分享一下我的翻车经验
1.这个手机的刷机包止步于 4.4,都是原厂魔改的。没有第三方适配,大概也是双系统的缘故,适配很困难。
2.网上很多刷机包都是 360 定制版本,内置 360 全家桶
3 。有网友发布过去掉安全系统的版本,可以增大存储空间,总之所有系统都是官方安置 4.4 的魔改。老的 CM 也没有适配过。

至于其他用法。我曾经试过把他放在家里转发短信验证码,但是发现这个机器的安全机制很特别,机会任何读短信的 APP 都读不到短信内容,

只有旧货利用的途径,也不是没有
1.这个手机带自动接听功能,可以设置直接自动接听(设置好白名单接听),或者链接蓝牙音箱自动接听,有时候可以放在家里,远程提醒在家的老婆大人给我暖床(划掉)
2.如果你有电信无限流量套餐,可以开热点当个随身路由器用,这是为数不多的支持换电池的手机,电池淘宝依然有售。支持电信 4G 网,热点网速比较理想。

zhhww57
    24

zhhww57   102 天前

VMOS,用 VMOS 模拟高版本 android,或者安装 xposed 的向下兼容模块
DreamingCTW
    25

DreamingCTW   102 天前

@zhhww57 VMOS 不支持 4.4.4 的
amok
    26

amok   74 天前

酷派的旗舰机都不给升级系统的?同期的荣耀 6,配置还不如这个,官方都升 6.0 了。
zhhww57
    27

zhhww57   62 天前

那就试试看移植到 android5 或者 android6,然后再用 vmos

iOS开发:城市选择器集成

一、简介
该项目集成了三种类型的城市选择器:

1、XXCityPickerView 省市区,可以分级:1省 2省-市 3省-市-区
2、SQSelectAddress 省市区乡/镇,页面跳转
3、RattanCityPicker 省市区,包含邮编地址,开放多个属性设置的接口
二、XXCityPickerView使用
1、从该项目导入【XXCityPickerView】文件包
2、 导入系统库 :libsqlite3.tbd
3、方法实现

1 #import “XXCityPickerView.h”
2
3 @interface ViewController ()<XXCityPickerViewDelegate>
4
5 @property(nonatomic,strong)XXCityPickerView *cityPicker;
6
7 @end
8
9 @implementation ViewController
10
11 – (void)viewDidLoad {
12     [super viewDidLoad];
13 }
14
15 ///方法调用
16 -(void)clickAction{
17     [self cityPicker];
18 }
19
20 – (XXCityPickerView *)cityPicker{
21     if (_cityPicker == nil){
22         // 初始化  设置类别   1省  2省-市  3省-市-区
23         _cityPicker = [[XXCityPickerView alloc]initWithComponents:3];
24         // 设置代理
25         _cityPicker.delegate = self;
26         [self.view addSubview:_cityPicker];
27     }
28     return  _cityPicker;
29 }

4、代理实现

1 // —- 【XXCityPickerViewDelegate】
2 // 取消
3 – (void)XXCityPickerViewLeftAction{
4     [self removeCityPickerView];
5 }
6 // 完成
7 – (void)XXCityPickerViewRightAction:(XXCityPickerView *)picker andCity:(NSString *)city andData:(NSMutableDictionary *)dic{
8     [self removeCityPickerView];
9     NSLog(@”������XXCityPickerView:\n city= %@   dic= %@”,city,dic);
10 }
11
12 -(void)removeCityPickerView{
13     if (_cityPicker) {
14         [_cityPicker removeFromSuperview];
15         _cityPicker = nil;
16     }
17 }

 

三、SQSelectAddress使用
1、导入【SQSelectAddress】文件包
2、调用【SQSelectAddressViewController.h】类
3、协议声明
@interface ViewController ()<SQSelectAddressViewControllerDelegate>
1
4、方法实现
pragma mark –
#pragma mark – SQSelectAddress
///页面添加
-(void)sqSelectAddressPockerView{
SQSelectAddressViewController *selectAddressVC = [[SQSelectAddressViewController alloc] init];
//签署协议
selectAddressVC.delegate = self;
selectAddressVC.animating = NO;
selectAddressVC.footerBg_color = [UIColor greenColor];
selectAddressVC.headerBg_color = [UIColor greenColor];
selectAddressVC.title_font = [UIFont systemFontOfSize:25];
selectAddressVC.titleText_color = [UIColor orangeColor];
[self presentViewController:selectAddressVC animated:YES completion:nil];
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
5、代理协议实现
– (void)selectAddressViewController:(SQSelectAddressViewController *)selectController selectedDetailAdreess:(NSString *)address townCode:(NSString *)townCode{
NSLog(@”����SQSelectAddress:\n地址=%@ 编码=%@”,address,townCode);
}
1
2
3
四、RattanCityPicker使用
1、导入[RattanCityPicker]文件包
2、方法实现
#import “RattanCityPicker.h”

#pragma mark –
#pragma mark – RattanCityPicker

-(void)rattanCity{
RattanCityPicker *picker=[[RattanCityPicker alloc] init];
picker.animation_dur = 0.3;
picker.toolViewBg_color =[UIColor greenColor];
picker.componentFir_font = [UIFont systemFontOfSize:16];
picker.componentStrFir_color = [UIColor redColor];;
picker.componentBgFir_color = [UIColor lightGrayColor];
picker.selectLblStr_font = [UIFont systemFontOfSize:20];
picker.selectLblStr_color = [UIColor redColor];
//点击确定按钮代码块调用
picker.sureBtnBlock = ^(){

};
//获取选择的城市的信息
[picker cityPikerGetSelectCity:^(NSMutableDictionary *dicSelectCity) {
[self setTextLbl:dicSelectCity];
NSLog(@”����RattanCityPicker:\n%@”,dicSelectCity);
}];
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2

安卓监听端口能让局域网的其他设备实时访问吗?

试过用 SSHDroid 把 Android 当成 SSH 服务,但电脑有时候能通过 ssh 访问安卓,有时候不能访问。
安卓有休眠机制,但网络会休眠吗? 22 端口有访问的时候不能唤醒设备吗?

或者自己在安卓上弄一个 ftp 服务器监听 21 端口,能让 21 端口实时访问吗?同时又希望在长期没有其他设备访问的时候又基本不增加耗电。

10 条回复    2021-01-09 00:30:06 +08:00
linhua
    1

linhua   92 天前

国产安卓系统会限制后台程序的运行,在应用程序设置里 设置成 不限制 就可以了。
小米的是在 应用设置–省点策略 里,如果设置成 智能限制后台运行,则不接电源,过一会就不能访问,如果接通电源,则一直可访问。 设置成 无限制,不管是否接通电源,始终可访问。
zictos
    2

zictos   92 天前

@linhua #1
我是三星的,已经把 SSHDroid 设为自动运行,取消电池优化以及取消手机自带的省电。
我其他需要保持后台运行的软件都是这么设置的,像 tasker 都可以保持长期后台运行。

但我发现 SSHDroid 其实并不需要后台,他运行的时候在进程看到实际是运行了一个 shell 脚本,即便把 SSHDroid 的后台关掉或者强制结束,但 ssh 服务依然可用,只是屏幕关掉一段时间后就很可能无法连接了,屏幕开启后不需要再次启动又能直接连接。

zictos
    3

zictos   92 天前

@linhua #1 很多后台运行的程序也会休眠的,需要自己定时唤醒,所以做不到实时
tanranran
    4

tanranran   92 天前

root 后把应用转为系统应用
Jirajine
    5

Jirajine   92 天前

和应用后台没关系吧。adbd 是系统进程,我用 adb shell,手机息屏以后反应也非常慢,亮屏才能恢复正常。应该与 Android 内核专门的调度有关。
zictos
    6

zictos   92 天前

@tanranran #4 如果是自己运行 shell 脚本是只需要把 shell 脚本移到 /system/bin 目录下吗?
试了用幸运破解器把 SSHDroid 移到系统目录,实际只是把 apk 移到了 /system/priv-app 下,但 data/data 下的数据还在原来的地方,而 SSHDroid 默认是会启动 data/data 下的 shell 脚本,即便程序退出了脚本还会运行
zictos
    7

zictos   92 天前

@Jirajine #5 我倒不是慢,而是有时候根本连不上。
linhua
    8

linhua   92 天前

我用的 SSHelper
zictos
    9

zictos   92 天前

@linhua #8 其实仔细想了想也没什么远程需求,用 adb 网络调试也行。
我现在好像可以后台运行 shell 脚本和 python 脚本了,也没必要用 SSHDroid 了。像下面这样就行:
setsid ./test.sh &

试着用 python 开了一个 tcp 长连接,每隔几秒就向服务器发一条消息,这样手机居然不会休眠,没有获取唤醒锁,服务器一直可以收到消息。
还有一个 ftp 服务器监听 21 端口,不知道会不会增加耗电,不知道会不会影响手机休眠

systemcall
    10

systemcall   91 天前 via Android

@zictos /system 默认情况下是只读的,所以即便是系统应用,数据也在 /data 下。但是系统应用在早期版本的安卓有很高的权限,*近的几个大版本虽然没那么高的权限了但还是有些地方比用户应用权限高
脚本放在 /data 没问题,/system/bin 里面不应该放自己的脚本吧,虽然放进去好像也没多大问题
要开机启动,直接改 Linux 层的启动脚本就行了

Android 线程间通信全部用广播,有什么坏处吗?

感觉广播比 Handler 方便多了,直接就 send,不用先传个实例才能回话

8 条回复    2021-01-08 10:38:47 +08:00
MaL
    1

MaL   92 天前 via Android

如果是一般广播的话,那就太重了,可以用本地广播或 eventbus
Helsing
    2

Helsing   92 天前 via iPhone

尽量少用吧,要不*后到处都是满天飞的广播,看的头大
towry
    3

towry   92 天前

不要只考虑写的时候有多爽,要考虑以后容不容易修改 /调试
wolegequ
    4

wolegequ   92 天前

能用就行,产品有人用再说. 某宝的 app 卡成翔也没见他们优化
kop1989
    5

kop1989   92 天前

软件开发层面就是不好维护。
广播相当于是一个低耦合链接。
假设你有需求要修改某个广播的信息格式或者传参数量。
这时候编译器帮不了你,你很难确认你发送端和接收端都改对了 /改全了。只能不断的测试。

而且细节处理不好还会有安全性问题。

k10ndike
    6

k10ndike   92 天前   ❤️ 1

可以用 LiveData
jinhan13789991
    7

jinhan13789991   92 天前

我目前是维护很多 LiveData,说白了就是另一种广播。
只不过发送和订阅都抽成了独立的接口。优点就是不会混乱,缺点就是每次有新的需求就要再写一个专门的方法。
后面在考虑抽成一个通用的方法,通过枚举保证唯一。
BrokenVns
    8

BrokenVns   92 天前   ❤️ 2

广播是基于异步 binder 的,异步 binder 存在以下小问题:
1.能够传递的数据量是同步 binder 的一半( 0.5M-4K ).
2.异步 binder 的消息传递优先级不高,可能会出现广播接收延迟问题,这种现象在 binder 流量大的老机器更明显。
3.你不知道异步 binder 传递是否成功了,碰到过通信失败而引发的 ANR 问题。
广播自身也有些小问题,比如广播要先发送给 AMS 再由 AMS 进行分发,跨了两次进程,广播是透明的等。

少量使用动态广播,可以减少开发量。
大量使用异步通信的话,还是建议使用 Looper-Handler 、开源库或者造轮子

Activity 为什么要有 onStart 生命周期?

Activity 为什么要有 onStart 生命周期? 直接用 onResume 不行吗?

两个 Activity 切换时, 它们的生命周期顺序是

… A#onPause B#onCreate B#onStart B#onResume A#onStop …

这样安排顺序我能理解, 在 A 显示的时候让 B 显示, B 完全展示后, A 走 onStop, 这样用户界面不会黑屏.

但有个疑问, B Activity 展示的回调中为什么要多一个 onStart, 直接通知正在展示的 Activity onRESUME 不行吗

8 条回复    2021-01-15 14:13:56 +08:00
also24
    1

also24   92 天前

我觉得谷歌是希望能严格区分 onPause() 和 onStop() 的。

所以对应着搞了 onResume() 和 onStart() 作为对应的恢复状态。

实际上 Google 确实专门讲了 onPause() 和 onStop() 的差异:
https://developer.android.com/guide/components/activities/activity-lifecycle

janus77
    2

janus77   92 天前 via iPhone

onresume 是 ui 渲染了,有些特殊的需求是希望在渲染之前执行,或者在进入后台(不渲染)的时候扔会执行。所以就需要 onstart 和 onstop
RikkaW
    3

RikkaW   92 天前   ❤️ 5

分屏、画中画等等屏幕上不止一个 Activity (窗口)的情况下就是只有处于焦点的那个是 resumed 状态,其他的都是 started 状态。
zagfai
    4

zagfai   92 天前   ❤️ 1

Android 给开发者制定的架构就是一坨翔
rosu
    5

rosu   92 天前 via Android

start 是可见,resume 是焦点。
narutow
    6

narutow   92 天前

@RikkaW 感谢, 理解了, onStart 和 onRESUME 就是界面可见 和 获得焦点可以同用户交互 的两个回调. 其他比如多窗口可以看到, 但不能交互的情况, Activity 就处于 onPause
kraits
    7

kraits   92 天前 via Android   ❤️ 1

楼主有没有考虑到 Activity 横竖屏切换的生命周期:

onSaveInstanceState()→onPause()→onStop()→onDestroy()→onCreate()→onStart()→onRestoreInstanceState()→onResume()

fromzero
    8

fromzero   85 天前

onStart onRestart 都是满有用的。

iOS选择器组件

1. 框架介绍

BRPickerView 封装的是iOS中常用的选择器组件。高度封装,只需一句代码即可完成调用,使用比较灵活支持自定义主题颜色。选择器类型主要包括:日期选择器、时间选择器、地址选择器、自定义字符串选择器。

框架地址:github.com/91renb/BRPi…

特别提示】:

  • 当前*新版本为: 2.2.1 。
  • 如果不能找到*新版本,请先执行一下 pod setup ,待更新完成后;再执行 pod search BRPickerView 进行搜索,就会看到*新版本。

2. 效果演示

查看并运行 BRPickerViewDemo.xcodeproj

框架Demo运行效果图1 框架Demo运行效果图2

3. 更新记录

  • 2018-04-27(V2.2.1):
    • 修复bug,适配iPad和横屏显示。
    • 优化代码,提高框架适应性,降低内存消耗。
  • 2018-04-03(V2.2.0):
    • 时间选择器新添加了7种显示类型(BRDatePickerMode),可根据自己项目的需求选择性使用。
    • 适配横屏,及 iPhoneX 底部安全区域。
    • 修改了*小时间和*大时间的参数名称(以前版本是传 NSString 类型, 现在传 NSDate 类型)
    • 修复比较时间大小时出现的bug。
  • 2018-03-19(V2.1.3):
    • 修改地址选择器确认选择后的回调参数。
    • 现修改如下:可通过省市区的模型获取省市区的 name(名称)、code(id)、index(索引)resultBlock:^(BRProvinceModel *province, BRCityModel *city, BRAreaModel *area) {}
    • 去掉第三方依赖库 MJExtension ,修改为手动解析地址数据源。
  • 2018-03-11(V2.1.2):
    • 重命名了Github用户名,更新项目相关的路径。(提示:pod之前的版本不受影响)
  • 2018-02-28(V2.1.1)
    • 修复某些情况下无法用bundle加载本地数据源(BRCity.plist)bug。
  • 2018-01-26(V2.1.0):
    • 给地址选择器添加了一个方法(见方法4),提供数据源参数,支持外部传入地区数据源。
    • 提示:要注意数据源格式,参考 BRCity.json。可以把 BRCity.json 文件的内容放到后台去维护,通过后台接口获取地区数据源(即 BRCity.json 文件的内容)。
  • 2018-01-25(V2.0.0)
    • 更新了地址数据源(BRCity.plist),地区信息是2018年*新*全的,与微信的地区信息完全一致。
    • 支持自定义默认选择地址(格式:@[@”浙江省”, @”杭州市”, @”西湖区”]),支持下次点击进入地址选择器时,默认地址为上次选择的结果。
    • 修改了日期选择器、地址选择器、字符串选择器的接口方法(删除了之前的方法2)。
    • 添加了地址选择器显示类型,支持3种显示:只显示省份、显示省份和城市、显示省市区。
  • 2018-01-05(V1.3.0):
    • 添加取消选择的回调方法(点击背景或取消按钮会执行 cancelBlock )
    • 合并了字符串选择器 数组数据源和plist数据源对应的方法,dataSource 参数支持两种类型:

      1> 可以直接传数组:NSArray类型;

      2> 可以传plist文件名:NSString类型,带后缀名,plist文件的内容必须是数组格式。

  • 2018-01-02(V1.2.0)
    • 添加支持自定义主题颜色的方法。
  • 2017-11-26(V1.1.0)
    • 更换第三方依赖库。

      用MJExtension 替换了 原来的YYModel,以前没有注意导入YYModel,同时又导入YYKit会导致重复导入而冲突(另外使用YYModel时,手动导入和pod导入 其中的头文件和方法名也不一样,所以很容易出错)。

  • 2017-11-16(V1.0.0)
    • 初始版本!

4. 安装

4.1. CocoaPods

  1. 在 Podfile 中添加 pod 'BRPickerView'
  2. 执行 pod install 或 pod update 。
  3. 导入头文件 #import <BRPickerView.h>

4.2. 手动导入

  1. 将与 README.md 同级目录下的 BRPickerView 文件夹拽入项目中
  2. 导入头文件 #import "BRPickerView.h"

5. 系统要求

  • iOS 8.0+
  • ARC

6. 使用

6.1. 时间选择器:BRDatePickerView

​ 查看 BRDatePickerView.h 头文件,里面提供了3个方法,可根据自己的需求选择其中的一个方法进行使用。

  1. /**
  2. * 1.显示时间选择器
  3. *
  4. * @param title 标题
  5. * @param dateType 日期显示类型
  6. * @param defaultSelValue 默认选中的时间(值为空/值格式错误时,默认就选中现在的时间)
  7. * @param resultBlock 选择结果的回调
  8. *
  9. */
  10. + (void)showDatePickerWithTitle:(NSString *)title
  11. dateType:(BRDatePickerMode)dateType
  12. defaultSelValue:(NSString *)defaultSelValue
  13. resultBlock:(BRDateResultBlock)resultBlock;
  14. /**
  15. * 2.显示时间选择器(支持 设置自动选择 和 自定义主题颜色)
  16. *
  17. * @param title 标题
  18. * @param dateType 日期显示类型
  19. * @param defaultSelValue 默认选中的时间(值为空/值格式错误时,默认就选中现在的时间)
  20. * @param minDate *小时间,可为空(请使用 NSDate+BRPickerView 分类中和显示类型格式对应的方法创建 minDate)
  21. * @param maxDate *大时间,可为空(请使用 NSDate+BRPickerView 分类中和显示类型格式对应的方法创建 maxDate)
  22. * @param isAutoSelect 是否自动选择,即选择完(滚动完)执行结果回调,传选择的结果值
  23. * @param themeColor 自定义主题颜色
  24. * @param resultBlock 选择结果的回调
  25. *
  26. */
  27. + (void)showDatePickerWithTitle:(NSString *)title
  28. dateType:(BRDatePickerMode)dateType
  29. defaultSelValue:(NSString *)defaultSelValue
  30. minDate:(NSDate *)minDate
  31. maxDate:(NSDate *)maxDate
  32. isAutoSelect:(BOOL)isAutoSelect
  33. themeColor:(UIColor *)themeColor
  34. resultBlock:(BRDateResultBlock)resultBlock;
  35. /**
  36. * 3.显示时间选择器(支持 设置自动选择、自定义主题颜色、取消选择的回调)
  37. *
  38. * @param title 标题
  39. * @param dateType 日期显示类型
  40. * @param defaultSelValue 默认选中的时间(值为空/值格式错误时,默认就选中现在的时间)
  41. * @param minDate *小时间,可为空(请使用 NSDate+BRPickerView 分类中和显示类型格式对应的方法创建 minDate)
  42. * @param maxDate *大时间,可为空(请使用 NSDate+BRPickerView 分类中和显示类型格式对应的方法创建 maxDate)
  43. * @param isAutoSelect 是否自动选择,即选择完(滚动完)执行结果回调,传选择的结果值
  44. * @param themeColor 自定义主题颜色
  45. * @param resultBlock 选择结果的回调
  46. * @param cancelBlock 取消选择的回调
  47. *
  48. */
  49. + (void)showDatePickerWithTitle:(NSString *)title
  50. dateType:(BRDatePickerMode)dateType
  51. defaultSelValue:(NSString *)defaultSelValue
  52. minDate:(NSDate *)minDate
  53. maxDate:(NSDate *)maxDate
  54. isAutoSelect:(BOOL)isAutoSelect
  55. themeColor:(UIColor *)themeColor
  56. resultBlock:(BRDateResultBlock)resultBlock
  57. cancelBlock:(BRDateCancelBlock)cancelBlock;
  58. 复制代码
  • 使用示例(参考Demo):
  1. NSDate *minDate = [NSDate br_setYear:1990 month:3 day:12];
  2. NSDate *maxDate = [NSDate date];
  3. [BRDatePickerView showDatePickerWithTitle:@“出生日期” dateType:BRDatePickerModeYMD defaultSelValue:weakSelf.birthdayTF.text minDate:minDate maxDate:maxDate isAutoSelect:YES themeColor:nil resultBlock:^(NSString *selectValue) {
  4. weakSelf.birthdayTF.text = selectValue;
  5. } cancelBlock:^{
  6. NSLog(@“点击了背景或取消按钮”);
  7. }];
  8. 复制代码
  • 时间选择器的显示类型:
  1. /// 弹出日期类型
  2. typedef NS_ENUM(NSInteger, BRDatePickerMode) {
  3. // — 以下4种是系统自带的样式 —
  4. // UIDatePickerModeTime
  5. BRDatePickerModeTime, // HH:mm
  6. // UIDatePickerModeDate
  7. BRDatePickerModeDate, // yyyy-MM-dd
  8. // UIDatePickerModeDateAndTime
  9. BRDatePickerModeDateAndTime, // yyyy-MM-dd HH:mm
  10. // UIDatePickerModeCountDownTimer
  11. BRDatePickerModeCountDownTimer, // HH:mm
  12. // — 以下7种是自定义样式 —
  13. // 年月日时分
  14. BRDatePickerModeYMDHM, // yyyy-MM-dd HH:mm
  15. // 月日时分
  16. BRDatePickerModeMDHM, // MM-dd HH:mm
  17. // 年月日
  18. BRDatePickerModeYMD, // yyyy-MM-dd
  19. // 年月
  20. BRDatePickerModeYM, // yyyy-MM
  21. // 年
  22. BRDatePickerModeY, // yyyy
  23. // 月日
  24. BRDatePickerModeMD, // MM-dd
  25. // 时分
  26. BRDatePickerModeHM // HH:mm
  27. };
  28. 复制代码
  • 时间选择器显示类型的效果图:

以下4种样式是使用 UIDatePicker 类 进行封装的,支持循环滚动

样式1:BRDatePickerModeTime 样式2:BRDatePickerModeDate
样式3:BRDatePickerModeDateAndTime 样式4:BRDatePickerModeCountDownTimer

以下7种样式是使用 UIPickerView 类 进行封装的。

样式5: BRDatePickerModeYMDHM 样式6: BRDatePickerModeMDHM
样式7: BRDatePickerModeYMD 样式8: BRDatePickerModeYM
样式9: BRDatePickerModeY 样式10: BRDatePickerModeMD
样式11: BRDatePickerModeHM

6.2. 地址选择器:BRAddressPickerView

​ 查看 BRAddressPickerView.h 头文件,里面提供了4个方法,可根据自己的需求选择其中的一个方法进行使用。

  1. /**
  2. * 1.显示地址选择器
  3. *
  4. * @param defaultSelectedArr 默认选中的值(传数组,如:@[@”浙江省”, @”杭州市”, @”西湖区”])
  5. * @param resultBlock 选择后的回调
  6. *
  7. */
  8. + (void)showAddressPickerWithDefaultSelected:(NSArray *)defaultSelectedArr
  9. resultBlock:(BRAddressResultBlock)resultBlock;
  10. /**
  11. * 2.显示地址选择器(支持 设置自动选择 和 自定义主题颜色)
  12. *
  13. * @param defaultSelectedArr 默认选中的值(传数组,如:@[@”浙江省”, @”杭州市”, @”西湖区”])
  14. * @param isAutoSelect 是否自动选择,即选择完(滚动完)执行结果回调,传选择的结果值
  15. * @param themeColor 自定义主题颜色
  16. * @param resultBlock 选择后的回调
  17. *
  18. */
  19. + (void)showAddressPickerWithDefaultSelected:(NSArray *)defaultSelectedArr
  20. isAutoSelect:(BOOL)isAutoSelect
  21. themeColor:(UIColor *)themeColor
  22. resultBlock:(BRAddressResultBlock)resultBlock;
  23. /**
  24. * 3.显示地址选择器(支持 设置选择器类型、设置自动选择、自定义主题颜色、取消选择的回调)
  25. *
  26. * @param showType 地址选择器显示类型
  27. * @param defaultSelectedArr 默认选中的值(传数组,如:@[@”浙江省”, @”杭州市”, @”西湖区”])
  28. * @param isAutoSelect 是否自动选择,即选择完(滚动完)执行结果回调,传选择的结果值
  29. * @param themeColor 自定义主题颜色
  30. * @param resultBlock 选择后的回调
  31. * @param cancelBlock 取消选择的回调
  32. *
  33. */
  34. + (void)showAddressPickerWithShowType:(BRAddressPickerMode)showType
  35. defaultSelected:(NSArray *)defaultSelectedArr
  36. isAutoSelect:(BOOL)isAutoSelect
  37. themeColor:(UIColor *)themeColor
  38. resultBlock:(BRAddressResultBlock)resultBlock
  39. cancelBlock:(BRAddressCancelBlock)cancelBlock;
  40. /**
  41. * 4.显示地址选择器(支持 设置选择器类型、传入地区数据源、设置自动选择、自定义主题颜色、取消选择的回调)
  42. *
  43. * @param showType 地址选择器显示类型
  44. * @param dataSource 地区数据源
  45. * @param defaultSelectedArr 默认选中的值(传数组,如:@[@”浙江省”, @”杭州市”, @”西湖区”])
  46. * @param isAutoSelect 是否自动选择,即选择完(滚动完)执行结果回调,传选择的结果值
  47. * @param themeColor 自定义主题颜色
  48. * @param resultBlock 选择后的回调
  49. * @param cancelBlock 取消选择的回调
  50. *
  51. */
  52. + (void)showAddressPickerWithShowType:(BRAddressPickerMode)showType
  53. dataSource:(NSArray *)dataSource
  54. defaultSelected:(NSArray *)defaultSelectedArr
  55. isAutoSelect:(BOOL)isAutoSelect
  56. themeColor:(UIColor *)themeColor
  57. resultBlock:(BRAddressResultBlock)resultBlock
  58. cancelBlock:(BRAddressCancelBlock)cancelBlock;
  59. 复制代码
  • 使用示例(参考Demo):
  1. // 【转换】:以@” “子字符串为基准将字符串分离成数组,如:@”浙江省 杭州市 西湖区” ——》@[@”浙江省”, @”杭州市”, @”西湖区”]
  2. NSArray *defaultSelArr = [weakSelf.addressTF.text componentsSeparatedByString:@” “];
  3. [BRAddressPickerView showAddressPickerWithShowType:BRAddressPickerModeArea defaultSelected:defaultSelArr isAutoSelect:YES themeColor:nil resultBlock:^(BRProvinceModel *province, BRCityModel *city, BRAreaModel *area) {
  4. weakSelf.addressTF.text = [NSString stringWithFormat:@“%@ %@ %@”, province.name, city.name, area.name];
  5. } cancelBlock:^{
  6. NSLog(@“点击了背景视图或取消按钮”);
  7. }];
  8. 复制代码
  • 地址选择器的3种显示类型(showType 的3个枚举值):
样式1:BRAddressPickerModeProvince 样式2:BRAddressPickerModeCity
样式3:BRAddressPickerModeArea

6.3. 自定义字符串选择器:BRStringPickerView

​ 查看 BRStringPickerView.h 头文件,里面提供了3个方法,可根据自己的需求选择其中的一个方法进行使用。

  1. /**
  2. * 1.显示自定义字符串选择器
  3. *
  4. * @param title 标题
  5. * @param dataSource 数据源(1.直接传数组:NSArray类型;2.可以传plist文件名:NSString类型,带后缀名,plist文件内容要是数组格式)
  6. * @param defaultSelValue 默认选中的行(单列传字符串,多列传一维数组)
  7. * @param resultBlock 选择后的回调
  8. *
  9. */
  10. + (void)showStringPickerWithTitle:(NSString *)title
  11. dataSource:(id)dataSource
  12. defaultSelValue:(id)defaultSelValue
  13. resultBlock:(BRStringResultBlock)resultBlock;
  14. /**
  15. * 2.显示自定义字符串选择器(支持 设置自动选择 和 自定义主题颜色)
  16. *
  17. * @param title 标题
  18. * @param dataSource 数据源(1.直接传数组:NSArray类型;2.可以传plist文件名:NSString类型,带后缀名,plist文件内容要是数组格式)
  19. * @param defaultSelValue 默认选中的行(单列传字符串,多列传一维数组)
  20. * @param isAutoSelect 是否自动选择,即选择完(滚动完)执行结果回调,传选择的结果值
  21. * @param themeColor 自定义主题颜色
  22. * @param resultBlock 选择后的回调
  23. *
  24. */
  25. + (void)showStringPickerWithTitle:(NSString *)title
  26. dataSource:(id)dataSource
  27. defaultSelValue:(id)defaultSelValue
  28. isAutoSelect:(BOOL)isAutoSelect
  29. themeColor:(UIColor *)themeColor
  30. resultBlock:(BRStringResultBlock)resultBlock;
  31. /**
  32. * 3.显示自定义字符串选择器(支持 设置自动选择、自定义主题颜色、取消选择的回调)
  33. *
  34. * @param title 标题
  35. * @param dataSource 数据源(1.直接传数组:NSArray类型;2.可以传plist文件名:NSString类型,带后缀名,plist文件内容要是数组格式)
  36. * @param defaultSelValue 默认选中的行(单列传字符串,多列传一维数组)
  37. * @param isAutoSelect 是否自动选择,即选择完(滚动完)执行结果回调,传选择的结果值
  38. * @param themeColor 自定义主题颜色
  39. * @param resultBlock 选择后的回调
  40. * @param cancelBlock 取消选择的回调
  41. *
  42. */
  43. + (void)showStringPickerWithTitle:(NSString *)title
  44. dataSource:(id)dataSource
  45. defaultSelValue:(id)defaultSelValue
  46. isAutoSelect:(BOOL)isAutoSelect
  47. themeColor:(UIColor *)themeColor
  48. resultBlock:(BRStringResultBlock)resultBlock
  49. cancelBlock:(BRStringCancelBlock)cancelBlock;
  50. 复制代码
  • 使用示例(参考Demo):
  1. // 自定义单列字符串
  2. //NSArray *dataSource = @[@”大专以下”, @”大专”, @”本科”, @”硕士”, @”博士”, @”博士后”];
  3. NSString *dataSource = @“testData1.plist”; // 可以将数据源(上面的数组)放到plist文件中
  4. [BRStringPickerView showStringPickerWithTitle:@“学历” dataSource:dataSource defaultSelValue:weakSelf.educationTF.text isAutoSelect:YES themeColor:nil resultBlock:^(id selectValue) {
  5. weakSelf.educationTF.text = selectValue;
  6. } cancelBlock:^{
  7. NSLog(@“点击了背景视图或取消按钮”);
  8. }];
  9. // 自定义多列字符串
  10. NSArray *dataSource = @[@[@“第1周”, @“第2周”, @“第3周”, @“第4周”, @“第5周”, @“第6周”, @“第7周”], @[@“第1天”, @“第2天”, @“第3天”, @“第4天”, @“第5天”, @“第6天”, @“第7天”]];
  11. //NSString *dataSource = @”testData3.plist”; // 可以将数据源(上面的数组)放到plist文件中
  12. NSArray *defaultSelArr = [weakSelf.otherTF.text componentsSeparatedByString:@“,”];
  13. [BRStringPickerView showStringPickerWithTitle:@“自定义多列字符串” dataSource:dataSource defaultSelValue:defaultSelArr isAutoSelect:YES themeColor:RGB_HEX(0xff7998, 1.0f) resultBlock:^(id selectValue) {
  14. weakSelf.otherTF.text = [NSString stringWithFormat:@“%@,%@”, selectValue[0], selectValue[1]];
  15. } cancelBlock:^{
  16. NSLog(@“点击了背景视图或取消按钮”);
  17. }];
  18. 复制代码
  • 字符串选择器效果图:
单列字符串选择器(默认主题色样式) 双列字符串选择器(自定义主题色样式)
3列字符串选择器(自定义主题色样式) 4列字符串选择器(自定义主题色样式)

7. 许可证

BRPickerView 使用 MIT 许可证,详情见 LICENSE 文件。

iOS 自带的邮件客户端经常无缘无故出现红点

在收件箱里面全部已读弄了好几次都消除不了

10 条回复    2021-04-07 20:42:48 +08:00
SandyLee
    1

SandyLee   4 天前 via Android

换成 spark 可以解决
Hack3rHan
    2

Hack3rHan   4 天前   ❤️ 1

你用了 QQ 邮箱吧,QQ 邮箱里面来自腾讯的部分系统邮件,会收到通知但显示不了,比如超级会员续费通知等。
freeair
    3

freeair   4 天前

@Hack3rHan #2 竟然有这么奇葩的事情?
madmen
    4

madmen   4 天前

换来换去,*后还是换回了自带的。。。
qiaga
    5

qiaga   3 天前

@madmen #4 iOS 自带邮箱蜜汁推送
movq
    6

movq   3 天前 via iPhone

自带邮箱的推送在 apple watch 上的通知不会振动怎么办
derek80
    7

derek80   3 天前 via iPhone

收 outlook 的邮件偶尔也会这样。
Dvel
    8

Dvel   3 天前

2 楼说的 QQ 邮箱的问题在 spark 里也有。
Mail010
    9

Mail010   3 天前 via iPhone

好奇 ios 端的几个邮件应用是不是都这样…
实测 outlook 经常有推送提醒但无红点,然后已读或者删除之后才出现红点,用 qq 邮箱偶尔也有这种情况。没开后台刷新。
tomari
    10

tomari   2 天前

如果用的是 outlook,有时候还会出现一个邮件发两次的问题(只是发件箱里有 2 个,但是实际发了一个)
换了 spark 之后好用很多

python集合类型内置方法

python集合类型内置方法

 

 

python集合类型内置方法

文章目录

python集合类型内置方法

一.用途

1.关系运算

2.去重

二.定义方式

三.类型转换

四.常用操作

关系运算

1.交集 : `&`, `.intersection()`

2.并集 : `|`, `.union()`

3.差集 : `-`, `.difference()`

4.对称差集 : `^`, `.symmetric_difference()`

5.父集 :`>=`, `.issuperset()`

6.子集 : `<=`, `.issubset()`

去重

1.简单去重(无法保证顺序)

2.去重并保证原来的顺序(了解)

五.内置方法

优先掌握的操作(*******)

1.长度 : .len( )

2.成员运算 in 和 not in

3.循环取值

需要掌握的操作()

1.更新 .update( )

2.添加 .add( )

3.取走一个值 .pop( )

4.删除 .remove( ), .discard( )

5.无交集 .isdisjoint( )

不怎么需要了解的操作(***)

1..difference_update( )

2..intersection_ update( )

3..symmetric_ difference_ update( )

五.总结

一.用途

1.关系运算

交集 : &

并集 : |

差集 : –

交叉补集 : ^

2.去重

简单示例

l = [1,1,2,2,1,3]

s = set(l)

print(list(s))  #[1,2,3]

 

二.定义方式

在 “{ }” 内用逗号分隔开一个个元素

 

集合的元素必须是不可变类型

集合内元素无序

集合内元素唯一

集合的”工厂” : set

 

s={1,2,3,4,4,4,4,4,4,4,’a’}

?背后的操作就是

s=set({1,2,3,4,’a’})

 

?如果元素重复, 只会取一个

print(type(s),s)

#<class ‘set’> {1, 2, 3, 4, ‘a’}

 

?加入可变类型报错

s={[1,2,3],’aa’}  #报错

 

?无序的

s = {1,2,”b”,4,”a”,6,7}

print(s)  #{1, 2, 4, 6, 7, ‘b’, ‘a’}

 

ps : 定义空集合 与 定义空字典

 

?定义空集合

s = set()

print(s,type(s))

#set() <class ‘set’>

 

?定义空字典

dic = {}

print(dic,type(dic))

#{} <class ‘dict’>

 

三.类型转换

只要存在可变类型就无法转换, 会报错

我们说字典的 key 是不可变类型, value 是任意类型, 所以转换时转的就是字典的 key, 而不是 value

?整型—>集合

# res = set({1, 2, 3, 4})

res = {1, 2, 3, 4}

print(res, type(res))

# {1, 2, 3, 4} <class ‘set’>

 

?浮点型—>集合

# res1 = set({1.1, 2.2, 3.3, 4.4})

res = {1.1, 2.2, 3.3, 4.4}

print(res, type(res))

# {1.1, 2.2, 3.3, 4.4} <class ‘set’>

 

?字符串—>集合

res = set(‘shawn’)

print(res, type(res))

# {‘a’, ‘h’, ‘n’, ‘w’, ‘s’} <class ‘set’>

 

?元组—>集合

res = set((1, 2, 3, (1, 2, 3)))

print(res, type(res))

# {1, 2, 3, (1, 2, 3)} <class ‘set’>

 

?字典—>集合

?存到集合里面的是字典的 key (不可变)

res = set({‘name’:’shawn’,’age’:22})

print(res, type(res))

# {‘name’, ‘age’} <class ‘set’>

 

?整型、浮点型、字符串、元组、综合—>集合

res = set((2, 1.1,”song”, (111, 222)))

print(res, type(res))

#{1.1, 2, (111, 222), ‘song’} <class ‘set’>

?当综合里边存在字典(可变类型)时无法转换, 并报错

res = set((2, 1.1,”song”, (111, 222),{‘name’: ‘shawn’, ‘age’: 22}))

print(res, type(res))  #报错

 

四.常用操作

关系运算

?之后就以以下示例来讲解

linux=[“song”,”hai”,”xing”,”shawn”,”shang”,]  #学Linux的学生

python=[“shang”,”hai”,”qing”,”pu”,”qu”,”hi”]  #学Python的学生

 

?使用”for”循环取出两个都学的学生

linux_python=[]

for s in linux:

if stu in python:                #两个都学的学生

linux_python.append(s)       #加入到列表里面

print(linux_python)                  #[“shang”,”hai”]

 

图解

%title插图%num

 

1.交集 : &, .intersection()

?取出两门课程都学习的学生

linux={“song”,”hai”,”xing”,”shawn”,”shang”,}

python={“shang”,”hai”,”qing”,”pu”,”qu”,”hi”}

print(linu & python)                #[“shang”,”hai”]

print(linux.intersection(python))   #[“shang”,”hai”]

 

2.并集 : |, .union()

?取出全部的学生

print(linux | python)

#{‘shawn’, ‘qing’, ‘hai’, ‘song’, ‘hi’, ‘qu’, ‘xing’, ‘shang’, ‘pu’}

 

print(linux.union(python))

#{‘shawn’, ‘qing’, ‘hai’, ‘song’, ‘hi’, ‘qu’, ‘xing’, ‘shang’, ‘pu’}

 

3.差集 : -, .difference()

?只学习”linux”的,没学习”python”的 (在”linux”班级里看)

print(linux – python)            #{‘song’, ‘xing’, ‘shawn’}

print(linux.difference(python))  #{‘song’, ‘xing’, ‘shawn’}

 

?只学习”python”的,没学习”linux”的 (在”python”班级里看)

print(python –  linux)           #{‘qing’, ‘qu’, ‘hi’, ‘pu’}

print(python.difference(linux))  #{‘qing’, ‘qu’, ‘hi’, ‘pu’}

 

4.对称差集 : ^, .symmetric_difference()

?两个班级加起来看只学习了一门课程的学生

print(stus_linux ^ stus_python)

# {‘pu’, ‘qing’, ‘shawn’, ‘xing’, ‘song’, ‘qu’, ‘hi’}

 

print(stus_linux.symmetric_difference(stus_python))

# {‘pu’, ‘qing’, ‘shawn’, ‘xing’, ‘song’, ‘qu’, ‘hi’}

 

5.父集 :>=, .issuperset()

s1={1,2,3,4,5}

s2={3,2,1}

print(s1 >= s2)           #True

print(s1.issuperset(s2))  #True

 

6.子集 : <=, .issubset()

print(s2 <= s1)

print(s2.issubset(s1))

 

ps :如果两两相同,则互为父子集

 

去重

1.简单去重(无法保证顺序)

s1=set(‘hello’)

print(s1)  #{‘l’,’h’,’o’,’e’}

 

?将一个列表去重

l=[‘a’,’b’,1,’a’,’a’]

print(list(set(l)))    #先变成集合去重,再list变成列表

#[1,’a’,’b’]  无法保证顺序

 

2.去重并保证原来的顺序(了解)

l = [‘a’, ‘b’, 1, ‘a’, ‘a’]

l2=[]

s=set()

 

?通过”for”循环一个一个取, 一个一个加

for item in l:

if item not in s:

l2.append(item)       #l2=[‘a’,’b’,1]   一个一个加进来

print(l2)  #[‘a’,’b’,’1′]

 

五.内置方法

优先掌握的操作(*******)

1.长度 : .len( )

s1={1,’a’,’b’,’c’,’d’}

print(len(s1))  #5

 

2.成员运算 in 和 not in

s1={1,’a’,’b’,’c’,’d’}

print(len(s1))

s1={1,’a’,’b’,’c’,’d’}

print(“c” in s1)      #True

print(“c” not in s1)  #False

 

3.循环取值

集合是无序的, 所以使用 for 循环取出来的值也是无序的

s1={1,’a’,’b’,’c’,’d’}

for i in s1:

print(i)

# d

# 1

# c

# b

# a

 

需要掌握的操作()

1.更新 .update( )

新集合更新旧集合, 有则不添加, 无则添加

可以一次添加多个值

s1={‘a’,’b’,’c’}

s1.update({“a”,3,4,5})

print(s1)   # {‘a’,’b’,’c’,3,4,5}

 

2.添加 .add( )

一次只能添加一个值

s1={‘a’,’b’,’c’}

s1.add(4)

print(s1)  #{‘c’, ‘b’, ‘a’, 4}

 

3.取走一个值 .pop( )

不指定参数, 随机删除集合中的任意元素, 并且返回这个值

s={“aaa”,22,3,”bbb”}

res=s.pop()

print(s)    #{3, ‘aaa’, 22}

print(res)  #bbb

 

4.删除 .remove( ), .discard( )

.remove( ) : 当删除的元素不存在时, 报错

.discard( ) : 当删除的元素不存在时, 不报错

s1={‘a’,’b’,’c’}

?”remove”删除

s1.remove(4)  #报错

 

?”discard”删除

s1.discard(4)  #不报错

 

5.无交集 .isdisjoint( )

如果两个集合没有任何交集则返回 True

无交集实验

s1={1,2,3}

s2={4,5,6}

print(s1.isdisjoint(s2))   #T

print(s2.isdisjoint(s1))   #T

 

有交集实验

s1={1,2,3}

s2={4,5,6,3}

print(s1.isdisjoint(s2))   #T

print(s2.isdisjoint(s1))   #T

 

不怎么需要了解的操作(***)

1…difference_update( )

2…intersection_ update( )

3…symmetric_ difference_ update( )

五.总结

可以存多个值

无序

可变类型—>不可 hash 类型

 

win10 电脑连接 airpods 断联!

系统是 win10 ltbs 。为了方便 自己买了一个黑苹果免驱的 博通的蓝牙 4.0 芯片。但是 win10,下总是断联。听一会就没有声音了 需要手动选择别的音频源 然后在选择耳机 才可以 我现在有点怀疑自己我是不是系统版本出问题了 有人遇到这样的情况吗? airpods 和 airpods pro 都是一样

11 条回复    2021-03-29 11:06:47 +08:00
darkingtime
    1

darkingtime   16 天前

1903 连 airpods pro 没有问题,不是黑苹果
inertia
    2

inertia   16 天前

把 airpods 完全重置一下看看,之前也有类似的问题,重置之后就好了。
iyg429
    3

iyg429   16 天前 via iPhone

@inertia 完全重置的重新连接一次的意思吗?
ronnie9211
    4

ronnie9211   16 天前

@iyg429 https://support.apple.com/zh-cn/HT209463
lizytalk
    5

lizytalk   15 天前

我也是这样,没救的,重置 airpods 之后也还是这样
iyg429
    6

iyg429   15 天前

@lizytalk #5 你现在怎么处理的?
iyg429
    7

iyg429   15 天前

@iyg429 #6 我准备把我的系统升级一下 升级到*新版 我看到别人的系统 *新版 连 airpods 的电量都可以看的到
luhe
    8

luhe   14 天前

我的 AX201 连 Airpods 还挺稳定来着
lizytalk
    9

lizytalk   14 天前

@iyg429 不用 AirPods,换有线耳机… 不过我是本来就有一个 Sony 的头戴式耳机,只是因为有时候觉得 AirPods 更轻便才想在台式机用 AirPods 。既然用不了就不用了…
zhangkaix
    10

zhangkaix   12 天前

Airpods1,2,pro,这三款耳机我都在我的 Windows 笔记本上连接过,都不稳定,pro 款相对好一点,但也会偶尔断联。
我是在宿舍用的,当时觉得可能宿舍设备太多有干扰,但我放假回家试也是一样会断。
建议楼主有钱就再买个无线耳机专门给 Windows 用,,或者老老实实用有线耳机

zhangkaix
    11

zhangkaix   12 天前

我测试过华为的 Freebuds 3,OPPO 的 w51,红米的 Airdots,SONY 的 WH-1000XM3,WH-900H
当然这些全部都是我各个室友的耳机(狗头)
全部都很稳定
所以建议楼主有钱就再买个专门的无线耳机给 Windows 用,,或者老实用有线耳机
真无线 TWS 推荐三星 Glaxy Buds+ ,我准备买这个,音质续航无敌(纯推荐哈)

求助 iPhone 6 iOS 10.2 已越狱,重置锁屏密码重试次数有救吗?

iPhone 6 Plus,iOS 10.2,已越狱并安装 safestrat, sshd,但是 Wi-Fi 没开,没有受信任的电脑,密码就那些但是不记得是哪个了,再试两次就彻底锁了,想问下还有办法重置锁屏密码重试次数吗( 4 位数字)?

我记得有插件比如 Timepasscode Pro 之类的可以无视锁屏密码重试次数,cyinject 也有代码可以直接绕过 SpringBoard 密码,但是关键是 Wi-Fi 没开,想用 tcprely.py 通过 USB 连接到 iPhone 的 SSH,结果这大爷用充电线插到笔记本上连电都不肯冲,非得让我先解锁。啊啊啊啊啊我是真的没办法了啊,求教大佬们,我的手机还有救吗?(有资料,所以不能 DFU 刷机)

我目前还有的个大方向思路是,有没有什么越狱工具或者是硬件漏洞利用工具,可以修改文件系统的那种,我就可以把 cydia 插件扔到 MobileSubstrate 目录底下就行了,或者有没有什么工具提供了重置密码重试次数的小 tweak ?还记得 iPhone4 的时候有个 java 小工具可以在 DFU 底下直接用 SSH 读 iPhone 的文件系统的,忘记了名字也不知道能不能在 iPhone6 上用(我实在是好几年不玩 iPhone 了,求大佬指条路)

2 条回复    2021-03-29 18:49:13 +08:00
7v9TEc53
    1

7v9TEc53   12 天前

iOS 11.4.1 才有的解锁才能 USB 充电功能,为什么你 10.2 就用上了

建议想办法用 usb 链接 ssh

实在不行线刷保留数据升级到*新 iOS 然后 checkra1n 越狱

Whisper01
    2

Whisper01   11 天前

6 好像有绕过锁屏密码的软件
友情链接: SITEMAP | 旋风加速器官网 | 旋风软件中心 | textarea | 黑洞加速器 | jiaohess | 老王加速器 | 烧饼哥加速器 | 小蓝鸟 | tiktok加速器 | 旋风加速度器 | 旋风加速 | quickq加速器 | 飞驰加速器 | 飞鸟加速器 | 狗急加速器 | hammer加速器 | trafficace | 原子加速器 | 葫芦加速器 | 麦旋风 | 油管加速器 | anycastly | INS加速器 | INS加速器免费版 | 免费vqn加速外网 | 旋风加速器 | 快橙加速器 | 啊哈加速器 | 迷雾通 | 优途加速器 | 海外播 | 坚果加速器 | 海外vqn加速 | 蘑菇加速器 | 毛豆加速器 | 接码平台 | 接码S | 西柚加速器 | 快柠檬加速器 | 黑洞加速 | falemon | 快橙加速器 | anycast加速器 | ibaidu | moneytreeblog | 坚果加速器 | 派币加速器 | 飞鸟加速器 | 毛豆APP | PIKPAK | 安卓vqn免费 | 一元机场加速器 | 一元机场 | 老王加速器 | 黑洞加速器 | 白石山 | 小牛加速器 | 黑洞加速 | 迷雾通官网 | 迷雾通 | 迷雾通加速器 | 十大免费加速神器 | 猎豹加速器 | 蚂蚁加速器 | 坚果加速器 | 黑洞加速 | 银河加速器 | 猎豹加速器 | 海鸥加速器 | 芒果加速器 | 小牛加速器 | 极光加速器 | 黑洞加速 | movabletype中文网 | 猎豹加速器官网 | 烧饼哥加速器官网 | 旋风加速器度器 | 哔咔漫画 | PicACG | 雷霆加速