一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Android - Android權限控制之自定義權限

Android權限控制之自定義權限

2021-03-15 15:38Android開發網 Android

這篇文章主要介紹了Android權限控制之自定義權限,本文使用兩個APP作為范例,講解如何自定義權限,需要的朋友可以參考下

天哪,這篇文章終于說道如何自定義權限了,左盼右盼,其實這個自定義權限相當easy。為了方便敘述,我這邊會用到兩個app作為例子示范。

permission app: used to define a new permission
這個作為定義權限的app,我稱之為permission app.
client app: used to access the specified activity of permission app
這個作為訪問上述自定義權限的app,我稱之為client app

先看如何寫permission app

第一步

permission app很簡單,它的任務就是定一個permission,使用< permission>標簽即可,我們假設內容如下:

復制代碼 代碼如下:

<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指明訪問權限,權限即為我們剛申請的權限,這個需要同樣需要在androidmanifest.xml文件中標識,如下:

復制代碼 代碼如下:

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


這個activity于是就被打上了必須使用” custom.permission.startactivity”權限才能訪問的印記。

 

接著寫client app

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

第一步

在androidmanifest.xml文件中首先申請權限,如下:

復制代碼 代碼如下:

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


第二步

 

訪問permission app表明需要該權限的activity,代碼如下:

復制代碼 代碼如下:

intent in = new intent(); 
in.setclassname("com.example.custompermission", "com.example.custompermission.mainactivity"); 
startactivity(in);

 

大功告成

我們可以測試下效果,首先安裝permission app,然后接著安裝client app,結果如下:
Android權限控制之自定義權限

點擊之后

Android權限控制之自定義權限

另外我曾經在android permission權限機制引子提到過protection level問題,這邊我同樣測試下這個protection level,下面結果中y表示可以正常訪問,n則表示不可以訪問。

Android權限控制之自定義權限

需要注意的是,使用自定義permission的activity如果設置了:

復制代碼 代碼如下:

<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權限,事實上你的launcher是不具備已經請求自定義權限的。

launcher會報:application is not installed on your phone. 的錯誤.

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久综合给合久久狠狠狠… | 17个农民工婉莹第一部 | 99成人国产精品视频 | 精品国产麻豆免费人成网站 | 3p文两男一女办公室高h | 鬼吹灯天星术在线高清观看 | 亚洲第一在线 | 忘忧草在线社区WWW日本直播 | 天天排行网 | 日本一本草久p | 无套内射在线观看THEPORN | 91精品国产高清久久久久久io | 操黄| 我的奶头被客人吸的又肿又红 | 国产色婷婷亚洲 | 日韩av.com | 视频在线欧美 | 国产喂奶300部 | 国产专区日韩精品欧美色 | 久草色视频 | 涩色网站 | 香蕉视频在线观看网站 | np小说h| xxxx意大利xxxxhd| 欧美添下面视频免费观看 | 亚洲AV 中文字幕 国产 欧美 | 憋尿调教绝望之岛 | 国产精品高清视亚洲一区二区 | 91亚洲精品国产自在现线 | 169pp美女 | h肉动漫在线视频无修无遮挡 | 精品国产乱码久久久久久人妻 | 2018久久精品热在线观看 | 2012年免费中文视频 | 国产性视频 | 亚洲品质自拍网站 | 狠狠躁夜夜躁人人爽天天miya | 欧美成年黄网站色高清视频 | 亚洲国产欧美另类 | 青草草产国视频 | 无颜之月全集免费观看 |