Android 跳轉許可權設定介面的終極方案

2021-12-29 20:40:58 字數 1098 閱讀 3297

有時候app需要獲取某些許可權,要讓使用者手動開啟,那麼問題來了,若是直接提醒使用者出去找許可權入口,然後自己開啟,使用者不一定找得到,因為現在的android廠家定製的room五花八門,那麼使用者覺得不耐煩就有可能流失這部分使用者。

所以,我們需要給使用者乙個入口,讓使用者直接在app裡面跳轉到對應的許可權頁面。但剛剛也說了,現在的android廠家定製的room五花八門,所以不同的機型或者android版本開啟許可權頁面的方法就可能不一樣了,我們得去適配。

網上查了很多資料,什麼中級終極重級的方案都有,雖然這確實能夠解決一些機型的適配,但還是沒能給出乙個通用的解決方法。

比如有人說:

跳轉華為的許可權介面該這樣:

private void gohuaweimainager() catch (exception e)

}若是失敗就直接開啟預設介面:

private void gointentsetting() catch (exception e)

}從上面可以看出其主要的方法在與:

componentname comp = new componentname("com.huawei.systemmanager", "com.huawei.permissionmanager.ui.mainactivity");

裡邊的引數前乙個是華為許可權介面的包名,華為許可權介面的類名,既然知道包名與類名自然可以開啟該activity。

其他機型也是用這樣的思想去解決,那麼問題就出現了,看了網上這麼多適配的方案,都是這樣的思想啊,寫來寫去都差不多,那他們怎麼就知道這些機型的許可權介面的包名與類名呢?他們從來都沒說,或許是我沒看到,尷尬。

好了,所有的方法最終歸回到終極方案,下面便是最終方法:

找到該機型,然後找打你想要的許可權介面,可能比較難找,不過你還是要找到它,然後開啟,接著通過adb命令檢視當前頁面的activity,就可以看到該許可權介面的包名與類名。

當然,你想要適配什麼機型什麼android系統版本,就需要找到這樣一台手機去執行這樣的操作,拿到許可權介面的包名與類名後就可以用上述類似的方法,在app裡邊直接開啟許可權介面,沒辦法,好好適配吧,少年。

Android中自動跳轉到系統設定介面

呼叫方式 intent intent new intent android.provider.setting.x android.provider.settings.1.action accessibility settings 跳轉系統的輔助功能介面 3.action airplane mode ...

Android中自動跳轉到系統設定介面

android.provider.settings。1.action accessibility settings 跳轉系統的輔助功能介面 intent intent new intent settings.action accessibility settings startactivity in...

設定介面android 設定介面

最近研究設定介面,稍微總結一下,以後繼續補充 android供給了方便的安排設定介面的介面,不得不真心說個贊。對基本功能設計者都斟酌到了,極大方便了開發者,如果對設定介面沒有什麼特殊需求,那麼這些介面完全能滿足你,閒話少說,直接上案例。如果只是簡單設定,那麼完全可以在乙個xml檔案中布局。而且設計者...