為什麼很多安卓的應用都有直接發送彩信的許可權?
好多我覺得跟彩信八竿子打不著的應用都有這個許可權,比如知乎..為什麼會有這個許可權呢?
這個答案下許多人的回答都不全對,這裡說一下個人的粗淺看法。
作為一個Android開發者,一定知道一個許可權叫發送簡訊(SMS),但是即便不申請這個許可權,在眾多國產ROM上,依然會發現自己的App有一個發送彩信(MMS)許可權。
這裡的MMS和SMS其實根本不是一回事,而且這也不是ROM的bug,而是符合中國國情的一種做法。
我們都知道發彩信是要收費的,而且比簡訊的費用要高的多,大概5-10倍的樣子。Android App發送彩信需要什麼許可權呢?只需要兩個:
- 聯網許可權(必須,但是走的是GPRS網路,也就是說發彩信需要手機(卡)支持GPRS且是消耗流量的)
- 存儲器訪問許可權(是否必須沒有試驗過,這裡我假裝是要的吧)
而且App可以做到對用戶完全透明,悄無聲息的發送彩信。
本質上,發彩信只是一個網路通信,而聯網許可權在Android的定義中不屬於危險許可權,安裝時即授權。存儲器訪問許可權雖說在Andoird M及之後需要用戶授權,但他基本也不會讓人有什麼危險感,不會像發送簡訊許可權那樣令人警惕。因此惡意App能輕易做到不經過用戶同意發彩信,即便是運行在M及之後的版本。
原生Android沒有發送彩信這一許可權,而中國的用戶又確實飽受惡意發送彩信的困擾,因此ROM廠商如小米就自己做了個MMS許可權,默認不授予App(詢問),以限制有可能發出彩信的App。
發彩信不需要發送簡訊許可權。只需要讀取圖片文件和網路許可權便可以實現後台發送彩信。
然而並沒有。
不知道你是從哪裡下載的盜版知乎。App並未明確申請此許可權,是MIUI的bug。實際上Android根本沒有「發送彩信」這一許可權和對應的API。
根據我自己的測試,在miui里所有申請了網路許可權的app都會有這個「發送彩信」的許可權,別的系統上不會有。
實際上這個許可權和「發送簡訊」是同一個,如果你想控制這個許可權的話,只需要控制「發送簡訊」就可以了。
說難聽點,就是流氓唄,我也問過類似的問題,就是國內應用就算沒有後台推送的服務或者關閉了後台推送的服務,它在後台還是有一個服務甚至幾個服務組成守護進程!
安卓和蘋果就像openstack和vmware的區別。我從不否認兩者同樣偉大,但是「人生觀」不同。我沒偏題,我講的是根本原因。
我所有的APP基本都有這個許可權,很納悶。
雖然android是開源的,但是從各種意義上講:原生android=正版android是沒毛病的。
所以,整天噴xx手機「沒優化,用的是原生android是鬧哪樣?」
打個比方,你買個品牌pc,出廠給你裝個盜版windows+一堆預裝「軟體」,你該叫好呢,還是該叫好呢,還是叫好呢?
推薦閱讀:
※綠色守護vs黑域(前禁止運行)?
※何為 Android Design,為什麼應用開發要遵循 Android Design?
※如何看待用 HTML5 技術開發的 web 應用與 Android 或 iOS 等原生應用的關係?
※怎樣使用深藍詞典?
※既然有 Google Play 的存在,那為什麼 Apkpure 還能做起來?