首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

开启QQ登录保护仍被盗号——QQ安全机制全面分析

如图:   值得一提的是,获取IMEI需要申请”READ_PHONE_STATE权限,做过Android开发的想必应该知道这个权限有多麻烦了。...Android 6.0以后, 这类权限要动态申请,很多用户可能会选择拒绝授权。有的APP授权这个权限就无法使用, 这会大大降低用户对APP的好感度。   ...Android 10.0以后彻底禁止第三方应用获取设备的IMEI(即使申请了 READ_PHONE_STATE 权限)。这使得用IMEI作为设备ID有些困难。...”READ_PHONE_STATE权限。...但是一些举措会改变这个值,:刷机、root、恢复出厂设置等会使得 Android ID 改变。   在Android 8.0以后,ANDROID_ID根据应用签名和用户的不同不同。

3.3K10

Android 开发者必知必会的权限管理知识

业内人士都知道Google 在Android 6.0时提出了运行时权限管理机制,在Android 6.0之前,所申请的权限只需要在AndroidManifest.xml列举就可以,从而容易导致一些安全隐患...,在运行时向用户申请对应权限。...(2)targetSdkVersion<23,终端设备是6.0(api 23)以上系统; 使用的是老的权限机制,在app 安装时会询问AndroidManifest.xml文件权限,但是用户可以在设置列表关闭相关权限...(3) 终端设备系统小于6.0(api 23) 大家可能要问,终端设备系统小于6.0情况还需要考虑吗,肯定是用的老的权限管理机制,在app 安装时会询问AndroidManifest.xml文件权限...下面将会以自己开发过程遇到的问题进行展开 ,目前企鹅FM支持免流了,需要使用READ_PHONE_STATE权限 (读取SIM卡状态),由于之前未对改权限是否关闭没有进行相关判断,因此收到了很多例因为上述权限关闭

1.7K60

AndroidR兼容性适配指南

该操作表示用户希望“不再询问”。在之前的版本,除非用户先前已选中“不再询问”对话框或选项,否则每当您的应用请求权限时,用户都会看到系统权限对话框。...如果您的应用以 Android 11 或更高版本为目标平台,并且需要访问以下列表显示的电话号码 API,则必须请求 READ_PHONE_NUMBERS 权限不是 READ_PHONE_STATE...后台位置信息访问权限 Android 11 更改了应用的功能获取后台位置信息访问权限的方式。本部分介绍了上述各项变更。...单独请求在后台访问位置信息 正如有关如何在运行时请求位置信息访问权限的指南中所述,您应该执行递增位置信息请求。如果您的应用以 Android 11 或更高版本为目标平台,系统会强制执行此最佳做法。...提升用户体验,通过显示 4k 视频或下载分辨率更高的游戏资产。 在确认增加的流量消耗不会让用户付费后,添加通常仅通过 WLAN 提供的体验,主动下载一般为按流量计费的 WLAN 保留的内容。

2K20

Android8.0与Android9.0的新特性兼容适配代码修改

https://blog.csdn.net/aqi00/article/details/88759343 《Android Studio开发实战 从零基础到App上线(第2版)》在书后面的附录给出了...不过附录表格只涵盖了常见的功能代码适配,Android8和Android9的众多新特性还涉及到其它的代码适配,下面就补充列出Android8和Android9的额外兼容处理说明: Android8.0...setCurrentPlayTime和reverse方法的调用方式示例如下:     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {        .../media/widget/FloatWindow.java Android9.0 1、获取设备序列号的方式由Build.SERIAL改为Build.getSerial(),同时还需要先获得权限READ_PHONE_STATE...获取设备序列号的兼容代码示例如下:     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {         et_wifi_name.setText

3.4K20

聊一聊Android 6.0的运行时权限

Android 6.0,代号棉花糖,自发布伊始,其主要的特征运行时权限就很受关注。因为这一特征不仅改善了用户对于应用的使用体验,还使得应用开发者在实践开发需要做出改变。...其中READ_PHONE_STATE用来获取deviceID,即IMEI号码。...这是很多统计依赖计算设备唯一ID的参考。如果新的权限导致读取不到,避免导致统计的异常。建议在完全支持运行时权限之前,将对应的值写入到App本地数据,对于新安装的,可以采取其他策略减少对统计的影响。...些许建议 不要使用多余的权限,新增权限时要慎重 使用Intent来替代某些权限拨打电话(和你的产品经理PK去吧) 对于使用权限获取的某些值,比如deviceId,尽量本地存储,下次访问直接使用本地的数据值...注意 即使支持了运行时权限,也要在Manifest声明,因为市场应用会根据这个信息和硬件设备进行匹配,决定你的应用是否在该设备上显示。

1K40

Android 如何获取有效的DeviceId

Android 10上的DeviceId 从 Android 10 开始,应用必须具有 READ_PRIVILEGED_PHONE_STATE 特许权限才能访问设备的不可重置标识符(包含 IMEI 和序列号...而这个权限是系统权限,也就是说一般应用将无法再获取IMEI 和序列号 受影响的方法包括: Build getSerial() TelephonyManager getImei() getDeviceId...如果应用以 Android 9(API 级别 28)或更低版本为目标平台,则相应方法会返回 null 或占位符数据(如果应用具有 READ_PHONE_STATE 权限)。...此外,在 Android 6.0 到 Android 9 版本,您还必须拥有下列权限,才能访问通过蓝牙和 Wi-Fi 扫描获得的附近外部设备的 MAC 地址: 方法/属性 所需权限 WifiManager.getScanResults...8.0之前,ANDROID_ID是与设备关联的,当设备首次启动时,系统会随机生成一个64位的数字,并以16进制字符串的形式保存到手机系统,当手机恢复出厂设置后,Android ID会被重置,这是Android

6.6K30

android获取设备唯一标示

系统都手机设备现在也出现了非手机设备平板电脑、电子书、电视、音乐播放器等。...权限问题:获取DEVICE_ID需要READ_PHONE_STATE权限,如果只是为了获取DEVICE_ID没有用到其他的通话功能,申请这个权限一来大才小用,二来部分用户会怀疑软件的安全性。...厂商定制系统的Bug:少数手机设备上,由于该实现有漏洞,会返回垃圾,:zeros或者asterisks MAC ADDRESS 可以使用手机Wifi或蓝牙的MAC地址作为设备标识,但是并不推荐这么做...: 非手机设备: 如果只带有Wifi的设备或者音乐播放器没有通话的硬件功能的话就没有这个DEVICE_ID 权限获取DEVICE_ID需要READ_PHONE_STATE权限,但如果我们只为了获取它...,没有用到其他的通话功能,那这个权限有点大才小用 bug:在少数的一些手机设备上,该实现有漏洞,会返回垃圾,:zeros或者asterisks的产品         2.

6.8K70

API level targeting to 28,准备好了吗?

(非受限灰名单的非SDK 接口称为浅灰名单,受限灰名单的非 SDK 接口称为深灰名单) (1)....其他行为变更】 6.1 Build.SERIAL (设备唯一标识符)被弃用 说明 Android 9.0 之前,开发者可以使用Build.SERIAL 获取设备序列号。...处理 如果您的应用需要访问设备的硬件序列号,适配的方法为:先请求READ_PHONE_STATE 权限,然后调用Android9 中新增的 Build.getSerial()方法。...涉及到需要有设备序列号相关的请求,参数完整可用 6.2 限制访问通话记录 说明 Android 9.0 引入CALL_LOG 权限组并将 READ_CALL_LOG、WRITE_CALL_LOG...测试 例如地图项目:测试覆盖后台导航,后台录音(唤醒)等 6.5 限制访问 Wi-Fi 位置和连接信息 在Android 9 ,应用进行 Wi-Fi 扫描的权限要求比之前的版本更严格。

1.3K20

Android8.0、9.0、10.0、11.0的新特性兼容适配代码修改

Android8和Android9的众多新特性还涉及到其它的代码适配,下面就补充列出Android8、Android9、Android10的额外兼容处理说明: Android8.0 1、属性动画组合.../media/widget/FloatWindow.java Android9.0 1、获取设备序列号的方式由Build.SERIAL改为Build.getSerial(),同时还需要先获得权限READ_PHONE_STATE...获取设备序列号的兼容代码示例如下: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { et_wifi_name.setText...首先确保代码已经添加动态申请存储权限的逻辑,然后给AndroidManifest.xml的application节点增加以下属性: android:requestLegacyExternalStorage...2、Android11新增了查询所有应用的权限QUERY_ALL_PACKAGES 通常调用PackageManger的getInstalledApplications方法可以获取已安装的应用列表,获取代码示例如下

99220

浅谈android获取设备唯一标识完美解决方案

: 非手机设备: 如果只带有Wifi的设备或者音乐播放器没有通话的硬件功能的话就没有这个DEVICE_ID 权限获取DEVICE_ID需要READ_PHONE_STATE权限,但如果我们只为了获取它...,没有用到其他的通话功能,那这个权限有点大才小用 bug:在少数的一些手机设备上,该实现有漏洞,会返回垃圾,:zeros或者asterisks的产品 MAC ADDRESS 可以使用手机Wifi或蓝牙的...获取的限制:如果Wifi没有打开过,是无法获取其Mac地址的;蓝牙是只有在打开的时候才能获取到其Mac地址。...ID 上文可以看出,Android系统并没有可以可靠获取所有厂商设备唯一ID的方法,各个方法都有自己的使用范围和局限性,这也是目前流行的Android系统版本过多,设备也是来自不同厂商,且没有统一标准等原因造成的...从目前发展来看,Android系统多版本共存还会持续较长的时间,Android系统也不会被某个设备生产厂商垄断,长远看Android基础系统将会趋于稳定,设备标识也将会作为系统基础部分标准化,届时这一问题才有望彻底解决

18.3K42

Android 11适配攻略

在请求弹框还能看到始终允许,Android 11,取消了始终允许选项,默认不会授予后台访问设备位置信息的权限。...Android 11将后台获取设备位置信息抽离了出来,通过ACCESS_BACKGROUND_LOCATION权限后台访问设备位置信息的权限,需要注意的一点是,请求ACCESS_BACKGROUND_LOCATION...在Android 11,通过以下电话号码API,必须请求 READ_PHONE_NUMBERS 权限,不再是 READ_PHONE_STATE 权限。...-- 仅在运行 Android 10(API 级别 29)及更低版本的设备上授予 READ_PHONE_STATE 权限 --> <uses-permission android:name="READ_PHONE_STATE...兼容性调试工具 以往我们做适配时,需要先将项目中的 targetSdkVersion 改为对应版本,这就导致适配过程可能受到其它变更的影响,新增的兼容性调试工具科技让我们在不升级targetSdkVersion

3.8K11

Android 的危险权限详细整理

Android 的危险权限详细整理 前言: Android 中有上百种权限,现在将所有的权限归为两类: 一类是普通权限 一类的危险权限 普通权限是指那些不会威胁到用户安全和隐私的权限,这部分权限系统会自动帮我们进行授权不需要手动操作...危险权限则表示那些可能会触及到用户安全隐私或者对设备安全造成影响的权限获取手机联系人信息等权限,申请者部分权限必须有用户收到点击授权才可以,否则程序无法使用相应的功能。...下面列出 Android 中所有的危险权限,一共是9组24个权限。...,可以先到这张表来查看一下,如果在属于这张表权限,那么就需要进行运行时权限处理,如果不在这张表,那么只需要在AndroidManifest.xml文件添加一下权限声明就可以了。...另外需要注意,表格每个危险权限都属于一个权限组,我们在进行运行时权限处理时使用的是权限名,但是用户一旦同意授权了,那么该权限所对应的权限组中所有其他的权限也会同时被授权。

3.3K51

Android P 行为变更

Android P UTF-8 解码器更为严格,同时遵循 Unicode 标准,即: 非最短形式编码的 UTF-8, ,现在属于规范编码; 代理形式编码的 UTF-8,...网络地址查找可能导致网络违规 涉及域名解析的网络地址查找可能须要使用网络 I / O,因而属于阻塞操作 (blocking operation);阻塞造作是导致中断和卡顿 (jank) 的主要元凶...请求特定方向 (,screenOrientation=landscape) 的 Activity 会忽略用户锁定偏好,并与 Android O 行为一致。...设备序列号访问限制 Android 8.0 (API等级26) 已弃用 Build.SERIAL 字段;从 Android P 开始,Build.SERIAL 始终设定为 "UNKNOWN"。...若您的应用须要访问设备硬件序列号,您应该请求 READ_PHONE_STATE 权限,然后调用getSerial()。

2.6K20

Android 绿色应用公约

Android 绿色应用公约(草案) 宗旨 这是一项旨在推动Android生态的优秀应用共同维护一个更加良性的『设备体验』发起的开放公约。...由于Android系统的设备体验是由设备本身的软硬件及安装在设备的众多应用所共同影响的,后者的影响往往随着安装的应用数量增长迅速扩大。这种由应用所造成的外溢性影响,存在着典型的『公地悲剧』。...2, 不在运行时强制请求『读取手机状态和身份(READ_PHONE_STATE)』权限。 原因:IMEI泄露是目前用户隐私和手机安全的一个突出问题。...若应用的某些功能(通话相关的特性)依赖此权限(须具备逻辑上的合理性),则只能在对应功能交互请求此权限。即便用户拒绝授予权限,不依赖此权限的功能仍须保持可用。...O对应用后台约束的一项重大原则性变化,它倡导的是『非必要,勿启后台』的新原则。

1.4K60

Android6.0动态权限适配&XMPermissions

Android6.0动态权限 简介 从 Android 6.0(API 级别 23)开始,用户开始在应用运行时向其授予权限不是在应用安装时授予。...此方法可以简化应用安装过程,因为用户在安装或更新应用时不需要授予权限。它还让用户可以对应用的功能进行更多控制;例如,用户可以选择为相机应用提供相机访问权限不提供设备位置的访问权限。...用户可以随时进入应用的“Settings”屏幕调用权限。摘自Android官网:在运行时请求权限。...(第一次安装后请求权限前调用):false 1、曾经被拒绝过权限后再调用:true 2、曾经被拒绝过权限且不再询问后再调用:false 3、系统不允许任何程序获取权限:false 4、查看源码得知安卓...当然这么做非常麻烦像储存、定位、电话这三个权限我们几乎每次接口访问都需要获取,所以我们可以将一些权限申请在应用启动前置。

1.3K20

Android 11 应用兼容性适配,看这篇就够了

某些应用的核心用例需要访问大量的文件,文件管理操作或备份和恢复操作。这些应用可通过执行以下操作获取“所有文件访问权限”: ● 声明 MANAGE_EXTERNAL_STORAGE 权限。...#permissions 2.2.2权限对话框可见性 1背景 Android 11 建议重复请求特定权限权限。...在应用安装到设备上后,如果用户在使用过程对某个特定权限拒绝了两次,则表示其希望“不再询问”相应权限组的权限。...此前,Android系统提供了多种SDK接口(主要在PMSgetInstalledPackages(0)等),使app能轻易获取其他app的信息。...上述列出了 Android 10(API 级别 29)列入灰名单目前在 Android 11 受限的所有非 SDK 接口。

12K42
领券