6
我正在測試使用NotificationManager發送振動通知的應用程序。目前,我的清單中沒有振動權限。我明白需要擁有它,但是在沒有獲得許可的情況下,在設備之間看到一些奇怪的行爲。僅在某些設備上需要振動權限
<uses-permission android:name="android.permission.VIBRATE"></uses-permission>
我主要在Galaxy S4上測試,即使沒有設置權限,我也可以進行振動測試。它在Android 4.3上。我剛剛測試了三星Galaxy Nexus,它在嘗試進行振動時產生運行時異常,表示我沒有權限。 Nexus在Android 4.3上。
我明白我應該有權限,但爲什麼S4似乎並不關心它沒有權限? S4股票ROM是否真的不關心權限?
這裏曾發生內部異常,對於它的價值:
Caused by: java.lang.SecurityException: Requires VIBRATE permission
at android.os.Parcel.readException(Parcel.java:1431)
at android.os.Parcel.readException(Parcel.java:1385)
at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag(INotificationManager.java:320)
at android.app.NotificationManager.notify(NotificationManager.java:136)
at android.app.NotificationManager.notify(NotificationManager.java:109)
我只是不明白爲什麼手機制造商會覆蓋這樣的標準Android權限的東西。這樣做會得到什麼? – 2014-08-29 12:15:55
如果我們不想添加振動許可,我們應該在try-catch中包裝我們的'NotificationManager'代碼。檢查[this](http://stackoverflow.com/questions/13602190/java-lang-securityexception-requires-vibrate-permission-on-jelly-bean-4-2)以獲取更多信息。顯然這是Android 4.2中的某種錯誤 – 2016-09-22 04:52:12