健行 App 為什麼要請求相機和麥克風權限?
一個已經拿到定位權限的健行 App,第一次點開錄影按鈕或語音按鈕時,還是會再跳出兩次請求——一次要相機,一次要麥克風。看起來像是同一個請求分三次問了三遍,但在 iPhone 上,這其實是三個互不相干的權限,各自保護不同的功能,而且只有在你真正要用到那個功能的那一刻才會跳出來。
簡單說
相機和麥克風權限,跟用 GPS 記錄軌跡完全是兩碼事。它們存在的唯一理由,是讓你在路上想拍張照片、錄一段影片或留一句語音的時候,App 能把它存下來——這和隨便一個相機 App 或語音備忘錄 App 要的權限一模一樣。定位權限管的是軌跡本身能不能一直記下去,相機和麥克風權限管的是之後能不能在軌跡上釘一點別的東西。iOS 把這三個當成完全獨立的權限,各自單獨判斷,誰都不需要靠另一個才能生效。
一趟健行裡,兩件完全不同的事
定位權限對應的是地圖上畫出來的那條線——連續不斷的一串位置點,累出距離、配速和軌跡的形狀。相機和麥克風權限對應的,是釘在這條線上某個具體位置的小東西——一段影片、一張照片、因為路上有什麼值得留下而說的一句話。就算相機和麥克風權限都拒絕了,光靠定位權限,一趟健行照樣能從頭到尾完整記下來,只是什麼都沒往上面釘而已——兩個權限都拒絕之後實際發生的,正是這個:軌跡繼續記,只是再沒有別的東西可以點了。
iOS 為什麼分開問,而且只在你真正要用的那一刻才問
iOS 不允許 App 去請求一個自己當下用不上的權限,也不會因為同屬一個 App,就把互不相干的權限塞進同一個彈窗裡問。定位的彈窗出現在開始記錄的時候,因為那一刻起就需要定位了。相機的彈窗出現在你第一次點擊拍照或錄影片的按鈕時,因為那才是 App 真正需要用到相機的第一刻。麥克風的彈窗出現在你第一次點擊錄語音的按鈕時,道理一樣。一個人健行了好幾個月,始終沒點過錄影片或語音的按鈕,這兩個彈窗完全可能一次都沒出現過——因為 App 那邊確實還沒有用到它們的場合。
一個允許,另一個不允許
這幾個權限互不依賴,拒絕其中一個不影響其他權限能做的事。拒絕麥克風,語音沒法用了,軌跡、照片、影片照樣正常;拒絕相機,反過來,照片和影片沒法用了,其他一切不受影響。以後想改主意也不用重裝,每個權限都能隨時在設定裡對應這個 App 的那一項裡切換,改完從下次用到那個功能開始生效。
容易想岔的地方
- 以為相機或麥克風的彈窗,跟已經給過的定位權限有什麼關係——沒有,iOS 把這三個完全獨立地管理,誰都不是另一個的前提條件。
- 不小心點掉了某個彈窗,就以為整個 App 都用不了了——實際上只是那一個權限背後的功能停了,GPS 軌跡記錄本身不受影響。
- 裝完 App,相機和麥克風的彈窗一次都沒出現——如果對應的拍攝按鈕從沒點過,這就是正常狀態。彈窗只在第一次真正用到的時候才出現,不是裝 App 那一刻就問。
- 奇怪相機的彈窗出現了,麥克風的怎麼沒跟著一起跳出來——拍照片、錄影片跟錄語音走的是不同的按鈕,各自第一次真正被用到的時候才會各自觸發權限請求。
TrailCam 在這件事上是怎麼做的
TrailCam 會在你第一次想在健行途中拍照片或錄影片的時候問相機權限,第一次想留語音的時候問麥克風權限,兩者都是為了把內容釘在你拍下它的那個位置上。這兩個權限跟 GPS 軌跡本身能不能繼續記沒有關係——那只取決於另外單獨問的定位權限。TrailCam 本身免費下載。
常見問題
- 拒絕相機或麥克風權限,會不會讓健行 App 沒法記錄 GPS 軌跡?
- 不會。軌跡本身能不能記,由定位這個獨立的權限決定。相機和麥克風權限只影響照片、影片、語音能不能被拍下來並釘在軌跡上。
- 為什麼我第一次打開 App 的時候,它沒問我要麥克風權限?
- iOS 只會在 App 真正要用到某個功能的第一刻跳出對應的權限請求。如果你從沒點過錄語音的按鈕,就還沒有觸發麥克風權限請求的場合。
- 能不能只給相機權限,麥克風權限一直不給?
- 可以。這兩個權限互相獨立,可以讓照片、影片正常使用,同時語音功能一直不能用,反過來也一樣。
記錄你自己的軌跡
TrailCam 是一款 iPhone 上的 GPS 軌跡記錄 App,會把沿途拍下的影片、照片與語音釘在你拍它的那個位置,並支援匯出成 GPX 1.1 或 CSV。免費下載。