a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 系統(tǒng) > Android > 正文

Android權(quán)限控制之自定義權(quán)限

2020-04-11 11:38:04
字體:
供稿:網(wǎng)友

天哪,這篇文章終于說道如何自定義權(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)容如下:

復(fù)制代碼 代碼如下:

<permission android:name="custom.permission.STARTACTIVITY" android:description="@string/permission_dcr" android:protectionLevel=signatureOrSystem android:label="label"></permission>

第二步

然后在定一個Activity,這個Activity很簡單就是展示下一行字,如”Hello from Custiom Permission Activity!”這里就不詳述。

第三步

最重要的地方:我們需要為這個Activity指明訪問權(quán)限,權(quán)限即為我們剛申請的權(quán)限,這個需要同樣需要在AndroidManifest.xml文件中標識,如下:

復(fù)制代碼 代碼如下:

<activity
        android:name="com.example.custompermission.MainActivity"
        android:label="@string/app_name" android:permission="custom.permission.STARTACTIVITY"> 
</activity>

這個Activity于是就被打上了必須使用” custom.permission.STARTACTIVITY”權(quán)限才能訪問的印記。

接著寫Client App

至于如何寫Client App,那就so so so … easy了,只需兩步:

第一步

在AndroidManifest.xml文件中首先申請權(quán)限,如下:

復(fù)制代碼 代碼如下:

<uses-permission android:name="custom.permission.STARTACTIVITY"/>

第二步

訪問Permission App表明需要該權(quán)限的Activity,代碼如下:

復(fù)制代碼 代碼如下:

Intent in = new Intent(); 
in.setClassName("com.example.custompermission", "com.example.custompermission.MainActivity"); 
startActivity(in);

大功告成

我們可以測試下效果,首先安裝Permission App,然后接著安裝Client App,結(jié)果如下:

點擊之后

另外我曾經(jīng)在Android Permission權(quán)限機制引子提到過Protection Level問題,這邊我同樣測試下這個Protection Level,下面結(jié)果中Y表示可以正常訪問,N則表示不可以訪問。

需要注意的是,使用自定義Permission的activity如果設(shè)置了:

復(fù)制代碼 代碼如下:

<activity
        android:name="com.example.custompermission.MainActivity"
        android:label="@string/app_name" android:permission="custom.permission.STARTACTIVITY"> 
<intent-filter> 
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter>

那就不能從Launcher中啟動該App,因為只有你的Launcher必須使用了uses-permission去請求獲取custom.permission.STARTACTIVITY權(quán)限,事實上你的Launcher是不具備已經(jīng)請求自定義權(quán)限的。

Launcher會報:Application is not installed on your phone. 的錯誤.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 一级黄色影视 | 成人午夜精品一区二区三区 | 红杏aⅴ成人免费视频 | 久久69精品久久久久久久电影好 | 欧美 日韩 国产 在线 | 高清视频新国产 | 日韩三级在线播放 | 日韩精品 | 国产精品久久久久久久午夜片 | 欧美日韩在线精品 | 男女羞羞视频在线 | 日日人人| 国产激情午夜 | 玖玖国产精品视频 | 黄色免费看 | 欧美成人免费在线视频 | 国际精品久久 | 吴梦梦到粉丝家实战华中在线观看 | 夜晚福利 | 日韩精品久 | 亚洲天堂在线视频观看 | 二区欧美| 亚洲动漫在线观看 | 99国产精品久久久久老师 | 国产视频久久精品 | 国产亚洲精品成人av久久影院 | 国产九九精品 | 91麻豆精品国产91久久久久久 | 欧美成人综合 | 久草视频在线播放 | av网站在线免费观看 | 国厂黄色片 | 欧美激情欧美激情在线五月 | 成人a在线视频免费观看 | 人人鲁人人莫一区二区三区 | 久久久久一区 | 精品久久久久久久久久久久久久 | 欧美一区二区伦理片 | 欧美日韩高清在线一区 | 久久久久久久久久久网站 | 成人男女激情免费视频 |