天哪,這篇文章終于說道如何自定義權(quán)限了,左盼右盼,其實這個自定義權(quán)限相當easy。為了方便敘述,我這邊會用到兩個app作為例子示范。
Permission App: used to define a new permission
這個作為定義權(quán)限的App,我稱之為Permission App.
Client App: used to access the specified activity of Permission App
這個作為訪問上述自定義權(quán)限的App,我稱之為Client App
先看如何寫Permission App
第一步
Permission App很簡單,它的任務(wù)就是定一個Permission,使用< permission>標簽即可,我們假設(shè)內(nèi)容如下:
然后在定一個Activity,這個Activity很簡單就是展示下一行字,如”Hello from Custiom Permission Activity!”這里就不詳述。
第三步
最重要的地方:我們需要為這個Activity指明訪問權(quán)限,權(quán)限即為我們剛申請的權(quán)限,這個需要同樣需要在AndroidManifest.xml文件中標識,如下:
接著寫Client App
至于如何寫Client App,那就so so so … easy了,只需兩步:
第一步
在AndroidManifest.xml文件中首先申請權(quán)限,如下:
訪問Permission App表明需要該權(quán)限的Activity,代碼如下:
大功告成
我們可以測試下效果,首先安裝Permission App,然后接著安裝Client App,結(jié)果如下:
點擊之后
另外我曾經(jīng)在Android Permission權(quán)限機制引子提到過Protection Level問題,這邊我同樣測試下這個Protection Level,下面結(jié)果中Y表示可以正常訪問,N則表示不可以訪問。
需要注意的是,使用自定義Permission的activity如果設(shè)置了:
那就不能從Launcher中啟動該App,因為只有你的Launcher必須使用了uses-permission去請求獲取custom.permission.STARTACTIVITY權(quán)限,事實上你的Launcher是不具備已經(jīng)請求自定義權(quán)限的。
Launcher會報:Application is not installed on your phone. 的錯誤.
新聞熱點
疑難解答
圖片精選