Android
文章平均质量分 89
Super-Bin
这个作者很懒,什么都没留下…
展开
-
Android-Firebase快速解决合规问题第4篇,解决FirebaseAnalytics库违规获取应用列表问题
未经许可读取个人信息 | 获取应用列表。解决FirebaseAnalytics库违规获取应用列表问题。Firebase实在太恶心了,在国内强烈不建议使用!!!firebase生态库相互唤起,出问题了很难定位。原创 2022-09-13 16:57:49 · 1957 阅读 · 0 评论 -
Android-Firebase快速解决合规问题第3篇,解决FirebaseCrashlytics库违规网络请求、获取AndroidId问题
原因:FirebaseCrashlytics没有提供的对应的provider,FirebaseCrashlytics的初始化是依赖核心FirebaseApp初始化的时候去加载FirebaseCrashlytics,所以我们只能从问题1:可以知道在app启动的时候就会发生网络流量请求,是在FirebaseCrashlytics库中发生。问题2:从栈顶可以知道,最终是触发了getString方法获取android id,但是找不到从哪里调起来的,那就根据上一篇文章学到的方法,运行debug模式尝试定位问题。原创 2022-07-03 20:00:06 · 4090 阅读 · 0 评论 -
Android-Firebase快速解决合规问题第2篇,解决FirebasePerformance库获取软件安装列表的行为
安全合规检测,说App未经用户同意,存在获取软件安装列表信息的行为。原因是firebase_performance库中,在初始化的时候会去获取软件安装列表,判断当前是否是主进程。第一篇文章已经介绍了解决方案,这里主要介绍如何定位问题、再去看如何解决问题。解决方案支持原生、flutter库,RN库。先把解决方案放在最上面,不想看详细的过程就直接复制粘贴使用吧。在AndroidManifest.xml中接入以下代码,重点在tools:node=“remove”,将这个provider移除掉。开发环境de原创 2022-06-27 00:52:52 · 2997 阅读 · 6 评论 -
Android-Firebase快速解决合规问题第1篇,汇总篇,无脑复制解决问题
本篇文章只快速介绍解决方案,详细分析看其他文章。通过配置延迟Firebase初始化,Android延时和ReactNative也是同理。2020年7月工信部发布了《关于开展纵深推进APP侵害用户权益专项整治行动的通知》工信部信管函〔2020〕164号文。重点对专项行动中“APP、SDK违规处理用户个人信息”“设置障碍、频繁骚扰用户”“欺骗误导用户”“应用分发平台责任落实不到位”四方面10类问题进行集中排查。2022年开始国内各大应用商店加大对APP合规的检查,像华为商店审核不通过就不让上架,其他商店在合规原创 2022-06-25 19:50:06 · 3117 阅读 · 1 评论 -
Android ContentProvider初始化流程简化分析
Android ContentProvider初始化流程简化分析→ ContentProvider#attachInfo() → ContentProvider#onCreate() → Application#onCreate()Android Code Search android官方在线阅读源码神器此处分析android-12.0.0_r32源码frameworks/base/core/java/android/app/ActivityThread.javamai...原创 2022-06-10 00:41:28 · 1139 阅读 · 0 评论 -
android使用ContentProvider初始化sdk,初始化时机
最近因为国内上架应用,检测出firebase有违规收集android id行为,明明在代码中延迟初始化了,但firebase依然有操作数据的行为,跟踪发现firebase采用了ContentProvider来初始化sdk,怪不得通过代码延时初始化并没有效果,简单整理一下ContentProvider的初始化原理。作为android四大组件之一,主要作用是封装底层具体实现,对内或对外提供数据。底层数据源可以是数据库、文件,或者网络,只需要ContentProvider提供的操作就能快速实现增、删、改、查。通常原创 2022-06-09 15:25:40 · 2534 阅读 · 6 评论 -
关于flutter-geolocator库使用问题,解决android使用LocationManager定位问题
文章目录相关知识问题现象分析问题解决问题修改源码使用方式有需要直接定位到最下面。相关知识geolocator flutter一个比较好用的定位库android原生提供的LocationManager,常用的定位库谷歌定位服务Google Location Service,需要引入google服务已经具备定位权限,并用户同意授权。<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />原创 2021-11-26 11:49:52 · 8957 阅读 · 25 评论 -
Android voice语音功能常见问题汇总,注意细节
文章目录前言监听有线耳机、蓝牙耳机(音响)插入打开扬声器前言监听耳机操作audioManager.setMode问题监听有线耳机、蓝牙耳机(音响)插入由于有线耳机、蓝牙耳机是两种传输形式,Android提供了两个广播监听。监听有线耳机//监听耳机IntentFilter headsetIntentFilter = new IntentFilter();headsetIntentFilter.addAction(AudioManager.ACTION_HEADSET_PLUG);h原创 2021-10-22 17:30:34 · 1468 阅读 · 0 评论 -
Android/Flutter WebView加载H5区分拍照和选择图片
这里写自定义目录标题前言结论问题分析H5端Android-WebView端参考测试html文件前言在使用flutter_inappwebview时,H5中需要进行交互拍照、选择图片。但in_appwebview中实现的方式目前无法区分拍照还是选择图片。现在分析原因,看解决办法。结论先上结论H5中使用以下方式调用,一定要加上capture,表明希望通过捕获的方式获取照片,也就是拍照。<input type="file" accept="image/*" capture>And原创 2021-10-21 16:29:39 · 5320 阅读 · 1 评论 -
webview_flutter官方插件选择文件、图片的问题
前言webview_flutter官方的webview插件,很多功能缺失,现在H5有上传图片的需求,但官方的插件并不支持。点击H5中的选择文件,没有任何响应,问题issues,官方库的issues上已经有提出相关问题。原因分析H5要想调用原生选择图片功能,需要webview重写WebChromeClient类中的onShowFileChooser方法。解决方案使用其他完善的webview替代flutter_inappwebview 这个库目前最完善flutter_webview_plug原创 2021-09-30 16:50:40 · 3407 阅读 · 3 评论 -
2021Google I/O开发者大会汇总
文章目录Smart canvas智能画布LaMDA语言模型-对话式人工智能Google LensGoogle MapWear OSAndroid12来自 Google I/O 的 16 项更新将使您的生活更轻松Smart canvas智能画布转变 Google Workspace 中的协作方式谷歌工作区Google WorkspaceGoogle Workspace 宣布使用 Smart Canvas 实现协作的下一次发展。一个具有实时协同办公功能的智能画布。整合表格、文档,todo事项等,原创 2021-06-22 20:45:43 · 659 阅读 · 0 评论 -
google play重签名问题修复,导致第三方登录失败问题
文章目录Google play重签名问题统一签名参考Google play重签名问题第一次上架google play应用,如果选择了google play提供的签名方式,会在你的应用上架到google play时候用它的签名帮应用重新签名,会造成从google play下载的应用包签名和其他平台下载的应用包签名不同。由于微信登录等第三方登录功能,需要上传唯一的包签名,也就是只有一个包可以使用微信登录。如果不把google play的重签名改成自有的签名文件,在google play下载的应用就无法使用原创 2021-05-14 17:18:12 · 3595 阅读 · 8 评论 -
Flutter-Android正式包采坑记录
问题描述:Flutter Android-Release包出错错误信息:执行打包命令flutter build apk --release错误提示Execution failed for task ':app:lintVitalRelease'. > Could not resolve all artifacts for configuration ':app:debugRuntimeClasspath'原创 2020-11-14 16:57:44 · 1237 阅读 · 0 评论 -
Flutter高仿支付宝打钩动画
文章目录简介效果预备知识自定义控件基本知识动画基本知识动画分析PathMetric类作用关键代码简介Flutter高仿支付宝打钩动画,利用动画和路径Path实现简易效果。熟悉Android的同学会发现有挺多共同点。Github代码链接效果预备知识自定义控件基本知识主要涉及几个类CustomPaint、CustomPainter、Paint、Path。CustomPaint、CustomPainter需要配合使用,CustomPaint可以理解为作画,CustomPainter字面意思画家,原创 2020-11-07 10:41:38 · 1188 阅读 · 0 评论 -
Android、ReactNative、Flutter集成Firebase推送注意事项
文章目录简介各开发语言官方文档汇总Android原生React-NativeFlutterFirebase版本查询Firebase中的每个功能包都有很多版本,以下可以查询可用的版本号引入关键Android原生ReactNativeRN0.60以下的版本RN0.60以上版本Flutter消息类型通知消息格式数据消息格式包含可选数据载荷的通知消息处理消息配置接收推送消息配置接收通知和数据类型测试推送消息 接收推送消息的关键 集成问题Flutter中集成出现获取到Token但无法收到推送消息简介涉及Andro原创 2020-10-03 00:22:05 · 3524 阅读 · 2 评论 -
HashMap和HashTable
HashMap数据结构 hashMap内部维护了一个存储数据的Entry数组,HashMap采用链表解决冲突,每一个Entry本质上是一个单向链表。当某条链表的长度大于8时,就会将其转换为红黑树。遍历一条链表的时间复杂度O(n),当一条链表过长时,遍历这条链表可能会花很长时间,而遍历一颗红黑树的时间复杂度为O(logn),从而减少了插入或查找的时间。般情况是通过【hash(key)%le...原创 2018-03-16 17:52:52 · 347 阅读 · 0 评论 -
Android之SparseArray源码学习
SparseArraysparseArray的主要作用是将Integers映射到Objects,相当于Map<Integer, Object>。当需要将Integers映射到Objects时,SparseArray比HashMap更高效。因为SparseArray避免自动装箱keys,并且它的数据结构不依赖于外部的Entry。 SparseArray是在一个数组结构中维护它的...原创 2018-03-30 10:11:40 · 250 阅读 · 0 评论 -
EventBus(一):注册、分发、注销
1 EventBus简介EventBus是一个用于简化Andorid、Fragment、Threads、Service之间信息传递的一个发布/订阅事件集。 使用EventBus的建议:并不建议将应用中所有的事件都通过EventBus进行发送,尤其对于一对一的组件之间通信,建议不要使用EventBus。EventBus的使用场景更像是一种广播,当我们向EventBus发送一个事件,则该事件将会传原创 2018-05-10 11:18:16 · 23416 阅读 · 0 评论 -
EventBus(二):Poster
简介事件分发的核心代码:private void postToSubscription(Subscription subscription, Object event, boolean isMainThread) { switch (subscription.subscriberMethod.threadMode) { case POSTING:...原创 2018-05-10 17:48:20 · 380 阅读 · 0 评论 -
采用Retrofit的PUT方式上传文件到apache
概述前段时间搭建了FastDFS用作文件存储,既然是文件存储,必然需要有文件才能存储。文件可能是由客户端传递上去,可以是视频、也可以是图片等。现在需要提供一个Android端传递视频文件的功能,一说到这,大家肯定想说,okhttp现实一个post表单就搞定了,但是post表单是需要服务端进行接收流,然后采用文件IO方式输出成视频,但这次我打算使用PUT方式上传一个文件。原创 2017-03-17 19:31:39 · 3869 阅读 · 1 评论