-
2022-03-10 17:14:49
Android登录系统设计
一、前言
前段时间项目进入第一阶段的尾声,虽然登录方面的功能基本上已经完成开发,但是很乱,例如QQ登录等第三方登录有自己的缓存机制,本地的账号密码登录又是一种方式,邮箱手机号登录又是另一种方式,最终经过几个小时的逻辑推导,第一次在没有运行代码的情况下完成这个登录系统的开发,最终运行成功了,修改了一次没有初始化的情况,中间还出现了一些小插曲,最后完成这套系统的开发,目前app 已上线谷歌应用商店,欢迎大家来体验。
二、流程图
这个流程图包含了登录系统设计的全流程,也是当时模拟的时候一步步走的流程
简要的用文字梳理一下登录流程
- 首先进入程序,需要进行判断登录缓存是否存在且有效,有效直接跳转 MainActivity,否则跳转 LoginActivity
- 进入 LoginActivity 之后进行多种形式的缓存,这里的缓存是在各自的部分进行处理的,最后缓存成统一形式的Json数据,但有一点是必须保证的,在进入MainActivity时这些工作必须完成,因为后续即将使用到这些凭据
- 然后跳转 MainActivity 前可以携带一些数据,或者进行一些动画的展示
- 如果第一次登录的话进入MainActivity需要对全局application进行设置登录凭据,之后的登录在开始启动完成登录凭据的读取
- 注销登录之后务必进行缓存的清理,包括登录缓存,退出应用时对于其他临时保存的json数据进行清理,类似个人信息之类的
- 关于缓存是否有效,类似QQ等第三方登录有自己专门的检验机制,统一登录和邮箱登录这边我仅仅只做了时间上的验证,也可以考虑自定义设置验证机制,最后只要保证登录凭据的形式统一即可
这里关于启动界面采用Lottie view的形式展示,没有使用slash screen的设计,主要原因是想使得动画炫酷一点,然后也创建了BootActivity进行启动相关逻辑的处理,下图为启动界面图,这里由于引入动画,遇到一个坑(稍后会进行讲述)
三、主要设计部分分析
由于个人开发限制,下列登录方式的方式以QQ,邮箱,统一账号登录为例
1.登录缓存设计
统一登录行为是这个系统设计的核心,所以这部分的设计以简单和信息最小化为原则进行设计,下面这四个字段足够用了,也可以自行扩展
//首先是唯一id字段,这个字段可以是第三方的openId也可以是其他的数据,只要保证数据唯一即可 //过期时间这个是可以设置的,登录的途径,与程序启动和进行统一账号的生成有关 data class LoginInfo(var id:String = "", var expireTime:Long = 0, var loginWay:String = "",var loginToken:String = "")
设计这样一个统一的缓存bean,然后利用 MMKV 进行键值存放相关的 json 数据,这里简单封装了 Gson使用Kotlin的扩展函数完成json和对象之间的转化,具体可以参考这篇文章Json和对象之间转换的封装(Gson)
//String.toMyObject<>()为转化成对象的形式 //Any.toMyJson()为转化成json数据的封装 val kv = MMKV.defaultMMKV() val loginInfo = LoginInfo(...) kv.encode("login_info",loginInfo.toMyJson())
这个部分在进行各种途径登录成功之后完成缓存操作
2.数据通讯设计
login 缓存
这个相当重要,设计缓存很多时候就是方便各个activity进行通信的,之前采用的是activity传值的方式进行的,每次传递都要编写一次代码,而且还容易出错,考虑到 login 这部分缓存具有很强的复用性,所以这部分需要放在全局的application中,然后需要的时候直接调用application即可。所以login 这部分的缓存是长期存放的数据,在登录成功之后进行设置application相关的缓存,同时也要考虑第一次登录或者注销登录之后的操作
companion object{ @SuppressLint("StaticFieldLeak") ... lateinit var login_info:LoginInfo ... } override fun onCreate() { super.onCreate() ... login_info = if (MMKV.defaultMMKV().containsKey("login_info")){ //包含即可认为不为空直接读取 login_info = MMKV.defaultMMKV().decodeString("login_info").toMyObject<LoginInfo>()[0] }else{ //否则初始化对象,这里如果未初始化会报错 login_info = LoginInfo() } ... }
login 部分的衍生缓存
这部分需要在MainActivity里面进行操作,确保有login部分的缓存之后进行的操作,这部分可以根据自己的需求进行,我的做法是一旦失败回到登录界面,当然无网络或者弱网也会触发这个,这个就属于自己的个性化选择了,目前我自己的这个项目没有网络几乎不能完成任何操作,所以选择了这个做法。衍生缓存也可以根据自己的需要进行持久化缓存或者只存在在内存中,我这里的做法同login部分的,只是每次退出应用后都销毁这部分缓存(这部分主要是为了信息方面的安全考虑的),login部分不销毁
例如这个QQ的获取个人信息,需要qqToken才能获取,即之前登录凭据中的accessToken
private fun getQQInfo(){ val qqToken = mTencent.qqToken val info = UserInfo(Application.context,qqToken) info.getUserInfo(object : DefaultUiListener(mTencent){ override fun onComplete(response: Any?){ kv.encode("qq_info",response.toString()) } }) }
当退出MainActivity时,移除这部分的缓存即可,如果有一些不可变的数据,可以考虑持久化,这里使用kv当时是为了方便,可以全局通信,使用全局的application也是可以的,效果一样,如果想要后续进行一些其他的持久化可以考虑MMKV
kv.remove("qq_info")
3.数据异常处理
关于 BootActivity的一些坑
这里主要是考虑这样一个场景,当用户在等待启动动画的时候,由于意外切换到了后台,然后再次进入,由于动画的跳转是有条件的,即跳转逻辑还没处理完毕,导致退出之后,动画一直在循环(跳转逻辑这部分被跳过了),这里的解决方案是调整逻辑处理的位置,放在onStart里面进行处理,如果onPause启动了,并且onStart部分的登录验证有效,就直接跳转MainActivity,省略动画(其实还可以记录时间给予最佳体验),如果无效则重新启动onStart中的逻辑,用到了一些简单的逻辑判断
private var loginValid = false private var onPause = false ... override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) ... //这里onCreate建议完成一些轻量级的任务,否则很有再次出现这种情况 } override fun onStart() { super.onStart() if (!onPause){ //跳转逻辑 //跳转逻辑中的登录有效则 //loginValid = true //否则不处理 }else{ //这里的startActivity参考郭神的第一行代码里面的重载函数 startActivity<MainActivity>(Application.context){} } } override fun onPause() { super.onPause() if (loginValid){ onPause = true } }
login 缓存部分数据被破坏
这部分的处理比较简单,可能由于 MMKV 缓存出错(听说这个概率极低,但还是以防万一),一旦比如进行某种请求时发现数据查找不到记录,此时可以销毁key然后跳转到登录界面重新登录
//这里之所以销毁全部key是因为,如果login_info这部分最重要的key出问题了,必须退出登录 kv.clearAll() startActivity<LoginActivity>(context){} finish()
如果是获取其他依赖login_info的数据,多次出错,可能是服务端的问题,也有可能是MMKV出问题了,此时重新登录是比较好的选择
val retry = 0 //网络请求 ... if(retry > 5){ kv.clearAll() startActivity<LoginActivity>(context){} finish() }
这部分最重要的就是login_info这个key了,如果这个数据损坏只能重新登录
4.涉及的activity以及它们各自的任务
-
BootActivity 负责下一次进入的跳转处理和首次进入的初始化,同时可以放一些动画,例如Lottie View,具体见官网的使用
<com.airbnb.lottie.LottieAnimationView android:id="@+id/animation_view" android:layout_width="match_parent" android:layout_height="match_parent" app:lottie_autoPlay="true" app:lottie_fileName="boot.json" app:lottie_loop="true" />
-
LoginActivity 负责各种登录途径的入口处理,并不涉及具体登录逻辑
class LoginActivity :BaseActivity<ActivityLoginBinding>(ActivityLoginBinding::inflate) { ... override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) ... viewBinding.qqLogin.setOnClickListener { ... //qqlogin部分处理 ... } viewBinding.mailLogin.setOnClickListener { ... startActivity<MyLoginActivity>(FundTestApplication.context){ putExtra("way","mailLogin") } ... } viewBinding.passwordLogin.setOnClickListener { ... startActivity<MyLoginActivity>(FundTestApplication.context){ putExtra("way","passwordLogin") } ... } } }
-
MyLoginActivity负责具体逻辑的处理
-
QQ 这里使用 UIListener进行处理,同时sdk自带的activity完成登录具体逻辑的处理
-
邮箱和统一账号登录由此activity进行处理,需要完成两项任务
-
本地数据的合法性检验(可以减少服务端的负担)
-
发送本地的账号密码/邮箱验证码进行服务端那边的验证
-
-
四、三种登录方式具体设计
1.第三方登录设计
这里以 QQ 举例,有兴趣的朋友可以参考上次写的QQ登录集成
QQ等第三方平台一般登录之后会生成自己的凭据,提取有用的信息作为缓存的登录凭据,比如唯一的 openId,access Token ,过期时间,其他的信息如果有需要的自行进行提取,这三个是最基本的,如果只是登录的话,openId保证唯一性,accessToken保证数据的准确性,QQ平台有相应的验证登录是否有效的机制,不需要我们进行验证处理。
设置第三方登录凭据
这部分在登录成功之后即可开始
val qqLogin = loginData.toMyObject<QQLogin>() //首先设置QQ登录需要的凭据 mTencent.setAccessToken(qqLogin.access_token, qqLogin.expires_in.toString()) mTencent.openId = qqLogin.openid
设置缓存的登录凭据
val loginInfo = LoginInfo(qqLogin.openid,qqLogin.expires_time,"qq",qqLogin.access_token) kv.encode("login_info",loginInfo.toMyJson())
当首次进行登录时,需要设置到全局的application里
Application.login_info = loginInfo
2.验证登录
首先验证登录的安全系数其实已经挺高了,目前主流的做法还有添加是否为机器人的检验,这部分暂时还没做,只做了验证码的验证
-
常见的几种形式
手机号、邮箱等,目前个人开发者只能使用邮箱进行发送验证码,手机号短信需要企业用户
-
验证码的生成
这里仅仅采用随机数的方法进行生成6位数字,不过这里就是服务端那边的工作了
-
统一登录的凭据中其他字段的生成
val loginInfo = LoginInfo(mail,expires_time,"mail","") //id字段使用登录邮箱作为唯一id //过期时间这里采用缓存时间+当前的时间生成过期时间戳,这里缓存一个月 //判断时只需要当前时间与过期时间进行比较即可 val expireTime = 30*86400*1000L + System.currentTimeMillis() //登录途径这里即mail //accessToken这里如果没有设计的话置空即可
3.统一账号登录
这个需要对每个第三方登录或者验证登录进来的账号进行处理,这里参考 CSDN 的id命名,途径+8位数字组成唯一id,这个id可以进行账号密码登录,所以这里没有设计账号注册系统了,主要考虑到其实大部分注册也需要邮箱手机号验证,目前也有好多平台没有自己的账号注册系统,不过自己可以给自己创建一些测试的账号便于登录
-
统一账号设计
这里采用登录途径+8位纯数字构成统一id,重复了进行重新生成
fun uid(platform:String):String{ return "${platform}_${(Random().nextInt(99999999 - 10000000 + 1)+10000000)}" } //例如qq_36725737 //即代表由qq平台登录的
-
登录凭据设置
这里id即可替换成统一账号即可,都是唯一的无需担心重复,过期时间参考验证登录,途径这里设置成password即可,accessToken这里也同验证登录,同时如果时密码登录的话就不需要注册了
-
然后这里提供忘记密码的选项,直接引导用户进行邮箱登录的提示,然后进入主界面里面进行设置密码,毕竟重置密码还是需要验证码的
五、总结
这次的登录流程的设计受益匪浅,统一的登录行为是设计中最核心的部分,可以进行扩展,同时便于进行管理,不过仍然有不足的地方,例如异地登录方面的考虑和设计,防机器人等的设计
六、应用界面
目前利用此登录系统开发的app已经上线谷歌应用商店,算是上架的第一个应用,搜索VFund即可,欢迎前来体验
部分界面展示
更多相关内容 -
Android获取系统时间以及网络时间
2020-09-02 00:37:10主要为大家详细介绍了Android获取系统时间以及网络时间的方法,感兴趣的小伙伴们可以参考一下 -
安卓手机 总是提示登录网络
2021-08-07 10:28:31安卓手机 总是提示登录网络 内容精选换一换使用MSTSC方式登录Windows云服务器时,系统报错提示“内部错误”。在本地主机以管理员身份运行cmd。执行netsh winsock reset重启本地主机。重试远程登录。如果仍无法登录云...安卓手机 总是提示登录网络 内容精选
换一换
使用MSTSC方式登录Windows云服务器时,系统报错提示“内部错误”。在本地主机以管理员身份运行cmd。执行netsh winsock reset重启本地主机。重试远程登录。如果仍无法登录云服务器,我们首先建议您排查本地的网络是否正常。更换网络(例如:手机热点)测试是否可以远程登录。如果使用手机热点的网络可以正常远程登录,说明是本地网
本指导手册中的界面操作菜单和截图配套的是iMaster NCE-Campus V300R019C10版本。目前CloudCampus APP仅支持安卓版本。单AP组网场景下,推荐使用CloudCampus APP对AP进行上线、注册,所以建议先提前下载CloudCampus APP。登录CloudCampus APP的帐号、密码和登录iM
安卓手机 总是提示登录网络 相关内容
云手机实例是以整台服务器的形式购买的,在购买时选择不同手机开数的实例规格,最终可获得的云手机数量也不一样。本章节将为您详细介绍购买服务器的操作步骤。登录管理控制台。在服务列表页,选择“计算 > 云手机 CPH”。在左侧导航栏选择“服务器管理”,单击右上角的“购买服务器实例”。根据界面提示,完成基础配置,如表1。参数说明参数参数说明样例计费
在会议中呼叫联系人加入会议,对方却无法在手机上收到消息提示,可能原因是:1、对端可能未登录云会议APP2、对端网络异常无法接收到呼叫,可以尝试切换网络或使用手机流量看能否恢复正常。3、对端PC和手机端同时在线且手机端已经在会中,此时来电会在PC提示,手机无法收到来电。4、若排查完以上情况仍无法解决,可反馈日志给后端进行排查。
安卓手机 总是提示登录网络 更多内容
您可以通过ADB方式和VNC方式连接云手机实例。ADB方式:Android Debug Bridge(简称ADB),是一个Android操作系统与桌面电脑间沟通的命令行工具,是安卓系统自带的独有应用。该方式使用命令行操作云手机,适用于APP自动化测试等场景。VNC方式:Virtual Network Computing(简称VNC),是一
WeLink PC端和安卓端支持共享电脑桌面,在会议中点击“共享”即可。【PC桌面共享】PC端和白板的网络在同一个局域网内时,在PC端单击图标,输入白板上的投影码,即可将PC屏幕快速投影至电子白板屏幕上。PC端和白板的网络在同一个局域网内时,在PC端单击图标,输入白板上的投影码,即可将PC屏幕快速投影至电子白板屏幕上。【手机资料共享】方法
本文介绍使用云手机服务时需要了解的基本概念。云手机是一台包含原生安卓操作系统,具有虚拟手机功能的云服务器,简单来说,云手机=云服务器+Android OS。您可以远程实时控制云手机,实现安卓APP的云端运行;也可以基于云手机的基础算力,高效搭建应用,如云游戏、移动办公、直播互娱等场景。服务器是用来提供云手机的物理服务器。云手机目前以服务器
在移动设备上正确安装APP后,就可以通过APP登录NetEco服务器。
安卓系统的浏览器支持缩放功能,IOS系统浏览器不支持缩放。APP和微信默认禁用缩放功能。PC端和手机端是相互独立的,用PC访问时跳转到PC端,用手机访问时跳转到手机端,此时如果只编辑了PC端,没有编辑手机端,访问时显示内容不同。通过PC端一键生成手机端,由于PC端部分插件在手机端不支持,导致部分内容样式不同,需要手动编辑。对同一个内容页面
日历依赖邮件推送,网络问题导致无法正常收发邮件。确保手机网络信号稳定,数据连接显示正常;收发邮件或收发消息试试看,确保数据连接、账号正常使用;在日历卡片点击刷新按钮,也可进入日历视图列表查看事件是否更新到达。
在租户现场的整个区域选择多个点位依次采样,使用APP采集点位信息上报给WLAN Planner。APP仅做信息采集和上报,所有信息查看和处理、导出报告都需要在WLAN Planner操作。整网验收需要使用ServiceTurbo平台上WLAN Planner工具的工程,整网验收时需要登录ServiceTurbo平台。在线模式下打一次点上传
华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。
通过Wi-Fi体检可以快捷地从WiFi覆盖、业务体验、网络安全三方面检测Wi-Fi。适用于不依赖于图纸的测试,可以随时随地检测Wi-Fi,并支持导出报告。您可以在技术支持人员的协助下,对测试结果不符合推荐值的项采取相应措施对网络健康度加以改善。单击,可以选择导出体检报告单击,可以选择对比体检报告单击,可以删除选择的体检报告
通过Wi-Fi体检可以快捷地从WiFi覆盖、业务体验、网络安全三方面检测Wi-Fi。适用于不依赖于图纸的测试,可以随时随地检测Wi-Fi,并支持导出报告。您可以在技术支持人员的协助下,对测试结果不符合推荐值的项采取相应措施对网络健康度加以改善。单击,可以选择导出体检报告单击,可以选择对比体检报告单击,可以删除选择的体检报告
介绍了NetEco APP运行环境的要求,以及如何下载并安装NetEco APP。
-
Android登录系统
2015-12-28 23:13:36用sqlite实现用户注册,登录,以及增删改查。用listview显示查询数据 -
Android系统中Wifi连接网络的源代码
2021-03-16 07:09:28摘要:JAVA源码,媒体网络,Android源码,Wifi Wifi连接网络,通过程序你将了解到定义WifiManager对象,定义WifiInfo对象,获取网络连接列表,定义一个WifiLock,打开Wifi网卡,关闭Wifi网卡,检查当前Wifi网卡状态,... -
如何解决Android系统搜索不到无线网络信号
2021-06-05 08:30:47下面学习啦小编就教你一些关于如何解决Android系统搜不到无线网络信号的方法吧。解决Android系统搜索不到无线网络信号的方法如下:如果您连接别人的无线信号或者输入错误的无线密码,则会连不上信号。请登录路由器...有些时候当在使用智能手机或者平板电脑连接无线网络的时候,会发现搜索不到无线网络信号,而别人却能够搜到信号,那该怎么办呢?下面学习啦小编就教你一些关于如何解决Android系统搜不到无线网络信号的方法吧。
解决Android系统搜索不到无线网络信号的方法如下:
如果您连接别人的无线信号或者输入错误的无线密码,则会连不上信号。请登录路由器界面,确认无线信号的名称和密码。
确认方法:登录路由器管理界面后,查看到无线信号的名称和密码,如下图:
部分路由器需要在 无线设置 中查看SSID(无线名称),在 无线安全设置 中查看无线密码。
如果路由器开启无线MAC地址过滤或禁用了该终端,也会导致连不上信号,建议先关闭路由器的过滤功能。
关闭无线MAC地址过滤
进入 无线设备接入控制,确认 接入控制功能 选择为 不开启,在部分路由器上关闭无线MAC地址过滤即可。如下图:
解禁被禁主机
登录路由器界面,点击 设备管理 >> 已禁设备,确认此处未禁用任何设备。如果有禁用设备,请点击 解禁 即可。
终端设备距离路由器过远或者中间有较多隔墙、障碍物等,导致终端接收的无线信号较弱,从而无法连接上信号。
建议将终端设备靠近路由器,在近距离下连接无线信号。
如果您之前修改过无线密码,但是没有修改信号名称,则终端上会保存错误的无线配置文件,导致路由器无法连接,请尝试删除配置文件。
设置方法:在 WLAN 设置界面,长按需要删除的无线信号,在弹出的对话框选择 取消保存网络。如下图所示:
终端设备不支持路由器设置的无线加密方式,或者无线信号名称包含中文或特殊字符,可能会导致终端无线连接不上。
建议修改路由器的无线名称,取消无线加密,再使用终端无线连接。
设置方法:登录路由器界面,在 网络状态 界面的左边,可以修改无线参数,如下图:
部分路由器在 无线设置 中修改 SSID(无线名称),在 无线安全设置 中选择 不开启无线安全。
连接路由器的无线终端数量是有上限的,如果当前连接了较多的无线终端(已经达到最大值),其他无线终端则无法连接路由器的无线信号。
建议断开其他无线终端,减少路由器的已连终端数量,再尝试无线连接。
使用其他的无线终端连接路由器的无线信号,测试是否可以成功连接。如果其他无线终端可以成功连接无线信号,建议检查终端本身的问题。
如以上方法均无法解决问题,请尝试复位路由器并重新设置。
-
Android8.1原生系统网络感叹号消除的方法
2020-08-26 01:26:09主要介绍了Android8.1原生系统网络感叹号消除的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 -
基于Android的4G网络移动高清视频监控系统关键技术的研究
2022-05-01 13:17:33基于Android的4G网络移动高清视频监控系统关键技术的研究 基于Android的4G网络移动高清视频监控系统关键技术的研究 基于Android的4G网络移动高清视频监控系统关键技术的研究 基于Android的4G网络移动高清视频监控... -
Android系统应用开发 实验五 网络通信 实验报告
2018-11-04 12:42:371、 了解Android网络通信技术 2、 掌握在程序中嵌入浏览器的方法 3、掌握HTTP通信 4、掌握Socket通信 实验内容:(其中,1必做,2和3选一个) 1、 开发一个简单的浏览器程序,实现网址输入、前进、后退、刷新网页等... -
Android7.1系统 网络测试工具
2022-06-14 16:28:53Android7.1系统 网络测试工具 -
基于Android系统的网络安全问题研究.pdf
2021-09-20 15:45:13基于Android系统的网络安全问题研究.pdf -
Android开启ADB网络调试方法
2021-01-20 09:19:25以上这篇Android开启ADB网络调试方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:android设置adb自带screenrecord录屏命令Android 修改adb端口的... -
总是提示“登陆到WLAN网络”
2021-06-07 14:18:40[问题反馈]总是提示“登陆到WLAN网络”1191618电梯直达shengzhang689登堂入室发表于 2015-8-23 19:42:34来自:浏览器最新回复 2017-1-31 22...系统版本是Mate7的安卓5.1.1也就是公测的132版本。%2Fstorage%2Femulate...[问题反馈]
总是提示“登陆到WLAN网络”
1191618
电梯直达
shengzhang689
登堂入室
发表于 2015-8-23 19:42:34
来自:浏览器
最新回复 2017-1-31 22:32:26
已经到WLAN—菜单—高级选项—关闭连接wlan通知了,如图,可是,还有提示“登陆到WLAN网络”。系统版本是Mate7的安卓5.1.1也就是公测的132版本。
%2Fstorage%2Femulated%2F0%2FPictures%2FScreenshots%2FScreenshot_2015-08-23-19-36-43.png (24.13 KB, 下载次数: 11)
2015-8-23 19:42 上传
%2Fstorage%2Femulated%2F0%2FPictures%2FScreenshots%2FScreenshot_2015-08-23-19-37-25.png (50.88 KB, 下载次数: 21)
2015-8-23 19:42 上传
huafen220292996
略有小成
发表于 2015-8-23 20:10:13
来自:浏览器
这个正常
huafen220292996
略有小成
发表于 2015-8-23 20:13:39
来自:浏览器
你点击你截图左下角删除就没有了
花粉13134890
自成一派
发表于 2015-8-23 20:14:43
来自:浏览器
粉粉如果你在设置-WLAN-菜单-高级设置中,将“网络通知”关闭 了还是继续提示的话,我帮你反馈下。
花粉16162112
自成一派
发表于 2015-8-23 21:07:24
来自:浏览器
谢谢楼主的分享
BH8AVW
花粉版主
发表于 2015-8-23 21:17:57
来自:浏览器
这个应该是开启了 wlan+ 功能 然后自动的推送
学会尊重他人,就是尊重自己;学会欣赏他人,就是欣赏自己;学会呵护他人,才是呵护自己。
花粉13511803
渐入佳境
发表于 2015-9-20 07:05:52
来自:浏览器
粉粉如果你在设置-WLAN-菜单-高级设置中,将“网络通知”关闭 了还是继续提示的话,我帮你反馈下。
花粉13511803
渐入佳境
发表于 2015-9-20 07:08:29
来自:浏览器
rzxhkl 发表于 2015-9-20 07:05
粉粉如果你在设置-WLAN-菜单-高级设置中,将“网络通知”关闭 了还是继续提示的话,我帮你反馈下。
...
我的也是,升级到开发版5.9.16后出现的问题,wlan设置里的各种开关都试过,没用,求解!!!
木一哥6123
已臻大成
发表于 2015-9-20 11:28:46
来自:浏览器
我的也是
木一哥6123
已臻大成
发表于 2015-9-20 11:29:23
来自:浏览器
有时候有有时候没
头号游戏迷
嘉年华活动限定勋章,积分达到50可获得
超级吃货节
嘉年华活动限定勋章,积分达到50可获得
好机友勋章
花粉好机友,注册时间大于99天
邀你看大片
嘉年华活动限定勋章,积分达到50可获得
花粉俱乐部8周年
花粉俱乐部8周年纪念勋章,新用户前往任务中心完成首帖任务即可领取
大富翁勋章
达到1万花瓣后可申请获得大富翁勋章
五一勋章
劳动最光荣,签到不能断!这个五一假期,我们也要多多“劳动”!连续签到三天,领取专属的五一勋章!
玩机超神
花粉ID至少20个原创技术帖,每个帖≥15K浏览,有效回复数≥1500
玩机超人
花粉ID至少10个原创技术帖,每个帖≥10K浏览,有效回复数≥1000
玩机达人
花粉ID至少5个原创技术帖,每个帖≥5K浏览,有效回复数≥500
猴年勋章
猴年专属纪念勋章
今日头条
参与今日头条相关活动获得奖励
新浪微博
关注@华为花粉俱乐部 新浪微博
主题分享狂人
主题资源合集不得少于8个(合集内资源量不得少于10个);主题资源帖不得少于80个;每个主帖不少于30张壁纸
主题分享达人
主题资源合集不得少于3个(合集内资源量不得少于10个);主题资源帖不得少于30个;每个主帖不少于30张壁纸
主题分享新星
主题资源合集不得少于1个(合集内资源量不得少于10个);主题资源帖不得少于15个;每个主帖不少于30张壁纸
游戏分享狂人
游戏资源合集不得少于8个(合集内资源量不得少于10个);游戏资源帖不得少于80个;游戏资源下载总量不低于5000
游戏分享达人
游戏资源合集不得少于3个(合集内资源量不得少于10个);游戏资源帖不得少于30个;游戏资源下载总量不低于2000
游戏分享新星
游戏资源合集不得少于1个(合集内资源量不得少于10个);游戏资源帖不得少于15个;游戏资源下载总量不低于1000
应用分享狂人
应用资源合集不得少于8个(合集内资源量不得少于10个);应用资源帖不得少于80个;应用资源下载总量不低于5000
应用分享达人
应用资源合集不得少于3个(合集内资源量不得少于10个);应用资源帖不得少于30个;应用资源下载总量不低于2000
评测超人
至少5个原创评测帖,每个帖≥8K浏览,有效回复≥300,加分数达≥25
评测牛人
至少3个原创测评帖,每个帖≥5K浏览量,有效回复≥150,并且加分数达≥15
技术超人
至少5个原创技术帖,每个帖≥8K浏览,有效回复≥300,加分数达≥25
特种部队
花粉特种部队荣耀勋章
技术牛人
至少3个原创技术帖,每个帖≥5K浏览,有效回复数≥150,被加分数≥15
花粉版主
花粉版主的身份荣誉勋章,感谢版主的辛勤付出
评测神人
至少10个原创评测帖,每个帖≥1W2浏览,有效回复≥600,加分数达≥50
技术神人
至少10个原创技术帖,每个帖≥1W2浏览,有效回复≥600,加分数达≥50
女神节专属勋章
女神节专属勋章(仅限2021年女神节期间领取,活动现已结束)
华为新一代折叠屏Mate X2专属勋章
华为Mate X2旗舰启航,仅限新品发布会期间领取(活动已结束),以及华为Mate X2用户领取(活动持续进行中)
金牛贺岁勋章
春节纪念勋章,仅限牛年春节期间连续签到3天领取(活动现已结束)
运动教练
官方认证专业运动教练
2020年度技术花粉钻石勋章
2020年度技术花粉钻石勋章
技术花粉专业等级
技术积分达到1800分时可获得此勋章
1024程序员节纪念勋章
We are committed to innovate for all mankind, no matter if rain or shine -致敬用技术改变世界的程序员们
国庆-中秋双节纪念勋章
即日起至10月8号,国庆-中秋双节期间可领取此勋章
华为开发者大会纪念勋章
9月10号至9月13号,华为开发者大会期间可领取此勋章
花粉捧场王
关注数达50可获得此勋章
C位担当
粉丝数达50可获得此勋章
花粉帖仙
发表1000个主题帖即可获得
华为Mate30系列
华为Mate30系列机型专属勋章
连续签到7天
连续签到7天可获得此勋章
精华帖贡献达人
发表超过15个精华帖数
技术花粉专业等级
技术积分达到600分时可获得此勋章
HUAWEI Mate 20 X (5G)
HUAWEI Mate 20 X (5G)专属勋章
技术花粉专业等级
技术积分达到150分时可获得此勋章
技术花粉专业等级
技术积分达到30分时可获得此勋章
技术花粉专业等级
技术积分达到6分时可获得此勋章
花粉帖皇
发表500个主题帖即可获得
花粉帖王
发表100个主题帖即可获得
-
关于AndroidStudio项目app在手机上运行遇到登录网络问题的解决
2021-06-05 08:30:35android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> 然后我试了,就能登录了。具体原理我也不知道,想了解的朋友上百度搜搜。 标签:xml,network,登录,... -
Android 实时监测(监听)网络连接状态变化
2021-01-06 00:14:17先简单说一下思路:网络变化时系统会发出广播。所以我们监听这个广播,利用接口回调通知activity做相应的操作就好了。。 步骤: 1、写个判断网络的工具类. 2、先写个类继承BroadcastReceiver。(不要忘记在清单... -
android通过访问网络获取网络时间,并修改系统时间
2014-05-30 18:01:31android通过访问网络获取网络时间,并修改系统时间 -
谈谈Android的三种网络通信方式
2020-08-31 18:56:40Android平台有三种网络接口可以使用,他们分别是:java.net.*(标准Java接口)、Org.apache接口和Android.net.*(Android网络接口)。本文详细的介绍,有兴趣的可以了解一下。 -
virtualbox下android系统的网络设置
2021-06-06 14:53:31在virtualbox下安装android系统跟安装其他linux系统一样,首先需要下载安装镜像,从...在virtualbox下安装好的android系统 默认是没有连接到网络的,如何设置virtualb... -
精选_基于Android的网络聊天软件的设计与实现_源码打包
2022-03-12 17:24:59基于Android的网络聊天软件的设计与实现 -
Android系统首选网络类型设置
2020-11-30 19:46:24Android 首选网络类型式默认值的修改方法 源码部分 //设置 frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java // Set the preferred network mode to target ... -
基于Android的员工考勤系统(源码+文档).zip
2022-02-26 19:15:23通过对3G手机常用的android系统的研究,测试了这种平台的大部分功能,android系统的开放性特点、良好的第三方程序开发环境和高效的可扩展性功能也方便了在android平台上才各种应用的开发。Android是一种新的系统,不... -
android5.1以太网共享4g,wifi网络.zip
2021-01-23 17:08:58rk平台android5.1通过网线共享4g,wifi网络,外加设置UI开关按钮,默认是打开共享的 可以通过系统属性persist.tethering.tether_eth 来设置,个人测试可行,有需要可以私聊交流 -
安卓学生信息管理系统(网络版)
2018-05-07 23:30:05HelloWeb是运行在my eclipse8.6平台上,作为服务器端。 StudentManage是运行在eclipse android平台上的,作为客户端。 stumanager.sql是数据库文件,直接在mysql运行即可。 -
通信与网络中的安卓系统中的wifi研究
2020-10-22 04:17:461 Android系统概述 Android是Google公司开发的基于Linux平台开源的手机操作系统,... Android系统基于Linux 2.6内核来提供系统的核心服务,例如安全机制,内存管理,进程管理,网络堆栈和驱动模块。其包含一组核心 -
安卓系统网络拼包测试软件
2022-06-06 20:47:08用于安卓系统,网络的测试。可设置拼包大小和拼包持续时间 -
android-获取网络时间、获取特定时区时间、时间同步的方法
2020-09-01 02:07:28本篇文章主要介绍了android-获取网络时间、获取特定时区时间、时间同步,小编觉得不错,现在就分享给大家,有兴趣的可以了解一下。 -
Android 获取系统内置的APP应用信息.rar
2019-07-10 11:18:30比如获取android系统中的录音机、相机、应用包访问权限帮助程序、android系统信息、设置、联系人存储、外部存储设备属性、Android键盘(AOSP)、移动数据信息、系统用户界面、密钥链、输入设备、HTML查看程序、移动... -
基于Android仿QQ聊天系统(源码+文档).zip
2022-02-28 22:28:36随着android系统的发展成熟,在即时通讯这一版块逐渐发展成一个综合化的信息平台。在Android 平台上开发即时通讯系统,它能够使用户在移动客户端上登录服务器,方便、迅捷地收发即时消息。随着研究的深入,可以在该...