工单节点使用指南
• 请用平和的语言准确描述你所遇到的问题
• 厂商的技术支持和你一样也是有喜怒哀乐的普通人类,尊重是相互的
• 如果是关于 V2EX 本身的问题反馈,请使用 反馈 节点
azh7138m

网易漫画 Android 需要电话权限才能使用

  •  
  •   azh7138m · Sep 8, 2018 via Android · 7266 views
    This topic created in 2977 days ago, the information mentioned may be changed or developed.
    权限是 read phone status and indentity,使用 app ops 忽略这个权限之后无法使用 app,
    不清楚这个设计是为什么,微信 支付宝 淘宝禁用这个权限之后可以正常使用
    Supplement 1  ·  Sep 10, 2018

    大概是Android权限设计捉鸡,参考 Changes to Device Identifiers in Android O

    Instead, they can use a new Android O API, Build.getSerial(), which returns the actual serial number, as long as the caller holds the PHONE permission.

    很捉鸡,有没有大佬说下为啥这么设计

    43 replies  •  2019-02-13 21:17:36 +08:00
    zts1993
    zts1993
    Sep 8, 2018
    1
    活捉法师
    green15
    green15
    Sep 9, 2018 via iPhone
    2
    网易的东西背后各种小动作很多的……
    throns
    throns
    Sep 9, 2018 via Android
    3
    活捉两位校友
    remon
    remon
    Sep 9, 2018 via Android
    4
    微信和淘宝你确定不给权限能用?
    azh7138m
    azh7138m
    OP
    Sep 9, 2018 via Android
    5
    @remon 使用 app ops 忽略这个权限
    写作 deny,读作 ignore
    palxie
    palxie
    Sep 9, 2018❤️1
    6
    这个权限问题应该不大吧,通常是获取手机 iemi 等信息, 并不是读取通讯录权限, 但是没权限就不允许用网易就有点夸张了
    ks3825
    ks3825
    Sep 9, 2018 via Android
    7
    一般遇到这种,我选择弃用
    loveour
    loveour
    Sep 9, 2018
    8
    越发觉得权限设计不合理,应该更细分。国内没有大流氓治这些厂商,其实按理说应用商店应该不允许这样的 App 上架的。不过说到底是隐私保护的法律不健全,光要求必须保护好隐私,却不规定不允许随便搜集隐私,那还能保护个蛋了。我是专门有一台手机用来随便安装这些应用。
    azh7138m
    azh7138m
    OP
    Sep 9, 2018 via Android
    9
    @loveour 国内应用商店才不管这些,网易也少有 app 能上架 play
    DeweyReed
    DeweyReed
    Sep 9, 2018
    10
    READ_PHONE_STATE:允许该应用访问设备的电话功能。改权限可让该应用确定本机号码和设备 ID、是否处于通话状态以及拨打的号码。
    很多厂商主要用这个权限确定设备 ID。估计是防止虚拟机、机器人什么的。
    azh7138m
    azh7138m
    OP
    Sep 9, 2018 via Android
    11
    @DeweyReed 道理我都懂,可是网易阅读 支付宝 淘宝 微信在忽略这个权限后都是可以正常使用的
    woyaojizhu8
    woyaojizhu8
    Sep 9, 2018
    12
    无法使用,提示什么?网易其他 app 也这样吗?
    kassadin
    kassadin
    Sep 9, 2018
    13
    首先这个权限描述过大,一般都是用来获取唯一标识的,第三方 SDK Bug 统计、推送、IM 等通常都会要这个权限,所以从应用的代码角度来说,强行要权限容错处理上更简单。

    当然不排除大厂需求旺盛,要到这种特殊权限后加上隐藏 API 等真的会拿你各种数据…
    loveour
    loveour
    Sep 9, 2018
    14
    @azh7138m #5 如果整个社会对隐私重视度不够,商店确实也没动力管。这个应该从法律层面来要求的,可惜。
    tadtung
    tadtung
    Sep 9, 2018 via Android
    15
    国内 app 很多都是这样。
    前几天下了个小米的就是。一堆权限,定位,短信读取等。。。关键还是这些对于 app 都没什么用处,不给权限 app 打不开。。。干脆卸载了,用 ios 版本的。
    XinLake
    XinLake
    Sep 9, 2018 via Android
    16
    这个权限很多时候是为了读取一个和手机关联的唯一 ID 号,移动网络能够保证这个 ID 号全网唯一。这个权限的能力不大,如果 App 视图读取通讯录、拨打 /接听电话,App 还要请求其他的权限。

    不过这个权限可以不用的。很早的时候一些 ID 生成算法就能够保证即使 10 年不停地生成也仅有亿分之一的概率重复。即使重复,App 和服务器通信时发现重复可以再次生成一个,没有任何计算负担。
    remon
    remon
    Sep 9, 2018 via Android
    17
    @azh7138m 抱歉没看到 appops,应该是多加了一步判断字段是不是为空,这个不 root 没办法了
    fengleidongxi
    fengleidongxi
    Sep 9, 2018
    18
    @remon ROOT 用什么办法? XP 吗?
    fengleidongxi
    fengleidongxi
    Sep 9, 2018
    19
    @azh7138m 再补充一眯,这个权限可以获取 imsi。如果不喜欢以后可以选择 web 或者收费应用
    huclengyue
    huclengyue
    Sep 9, 2018 via Android
    20
    @XinLake 生成的 ID 不能保证在一台设备上的唯一性
    huclengyue
    huclengyue
    Sep 9, 2018 via Android
    21
    可以用 AndroidID 代替 但是 AndroidID 手机重置后就会改变。但是万一出个什么邀请送积分的活动估计真有人不断重置来注册,所以大部分都用这个来做为唯一 ID 这样不管你有没有登陆,卸载或者重置系统你的数据都会在。。emmmm 作为开发者我不反对用这个 ID
    XinLake
    XinLake
    Sep 9, 2018 via Android
    22
    @huclengyue 这个 ID App 生成一次就可以保存,以后就用存储的 ID。虽然可以改,但是除了开发者,一般人不会动到那里,有时候还是很适合的。
    remon
    remon
    Sep 9, 2018 via Android
    23
    @fengleidongxi 是的啊,appops 类的我知道的都是返回空值
    hhsuan
    hhsuan
    Sep 9, 2018 via Android
    24
    这锅要谷歌来背
    taikobo
    taikobo
    Sep 9, 2018
    25
    这个设计就是为了获取你的隐私
    不爽不要用
    irainsoft
    irainsoft
    Sep 9, 2018
    26
    感觉 Android 应该是需要专门出一个获取 IMEI 之类信息的权限 (滑稽
    lostberryzz
    lostberryzz
    Sep 9, 2018
    27
    抱歉,用国产 App 就别谈隐私了,做个顺民少点麻烦
    fengleidongxi
    fengleidongxi
    Sep 9, 2018
    28
    @remon 把 OP 设置成 ignore,并不是全部都有效
    fengleidongxi
    fengleidongxi
    Sep 9, 2018
    29
    @hhsuan 这个不能让他来背,play 的大小应用有这样设计的吗?
    ByteRan
    ByteRan
    Sep 9, 2018
    30
    获取 iemi 必须得电话权限,这锅得谷歌背。其实我们也不想啊,
    ydxred
    ydxred
    Sep 9, 2018
    31
    ios 的貌似不需要。。。
    frozenthrone
    frozenthrone
    Sep 10, 2018 via iPhone
    32
    珍爱生命远离安卓和国产 app
    aaron61
    aaron61
    Sep 10, 2018
    33
    我这里淘宝,天猫,京东不给权限都用不了
    vibin
    vibin
    Sep 10, 2018
    34
    买 iPhone 吧
    amew
    amew
    Sep 10, 2018
    35
    这个锅真得谷歌来背...
    google 没有在碎片化如此严重的生态下给 Android 开发者一个能够真正全平台通用的唯一 ID 获取的方法。
    在国外,几乎每一台 android 手机都会运行有 google 框架,所以这个问题还好解决一点
    在国内,没办法,为了知道你真的是你,普通 Androider 能够想到的靠谱方法只能是去读你的 IMEI 了

    PS for Android developers: 其实如果不是特别要求的话,可以考虑在安装时利用 UUID.randomUUID()生成一个随机唯一 ID,可以解决大多数问题,这样就不用请求敏感权限,省的甚至都被程序员喷了
    zthinking
    zthinking
    Sep 10, 2018
    36
    手头的华为可以单独开 imei 权限,不用把整个通讯录都授权
    hhsuan
    hhsuan
    Sep 10, 2018
    37
    @amew #35 anroid 里提供了获取唯一设备 ID 的 API。
    azh7138m
    azh7138m
    OP
    Sep 10, 2018
    38
    @amew Settings.Secure.ANDROID_ID
    只是大家不愿意使用,很奇怪,国内安卓开发似乎停留在 4.X 的时代
    ysc3839
    ysc3839
    Sep 10, 2018
    39
    @amew Android 有 AndroidID,获取 IMEI 不是因为没有提供,而是因为开发商想在应用重新安装或者手机重置后继续跟踪用户。iOS 没提供任何唯一 ID,那些软件也不是不能运行。
    zjddp
    zjddp
    Sep 10, 2018
    40
    无非是现在没办法获取相对可靠的用户唯一标识了。这一点上不吹不黑,水果安卓半斤八两。
    azh7138m
    azh7138m
    OP
    Sep 10, 2018 via Android❤️1
    41
    @ysc3839 iOS 现在提供了,只能存有限的两个标志位
    amew
    amew
    Sep 11, 2018
    42
    @azh7138m ANDROID_ID 有时也会出问题的,概率性出现 ID 重复的问题,这个锅得国内厂商来背
    qmqmoe123
    qmqmoe123
    Feb 13, 2019
    43
    苹果保平安系列
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5394 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 74ms · UTC 01:53 · PVG 09:53 · LAX 17:53 · JFK 20:53
    ♥ Do have faith in what you're doing.