編輯:Android開發實例
天哪,這篇文章終於說道如何自定義權限了,左盼右盼,其實這個自定義權限相當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 Permission權限機制引子提到過Protection Level問題,這邊我同樣測試下這個Protection Level,下面結果中Y表示可以正常訪問,N則表示不可以訪問。
需要注意的是,使用自定義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. 的錯誤.
登錄應用程序的屏幕,詢問憑據登錄到一些特定的應用。可能需要登錄到Facebook,微博等本章介紹了,如何創建一個登錄界面,以及如何管理安全問題和錯誤嘗試。首先,必須定義兩
Android系統默認的Toast十分簡潔,使用也非常的簡單。但是有時我們的程序使用默認的Toast時會和程序的整體風格不搭配,這個時候我們就需要自定義Toast
可以顯示在的Android任務,通過加載進度條的進展。進度條有兩種形狀。加載欄和加載微調(spinner)。在本章中,我們將討論微調(spinner)。Spinner 用
前言 android中有很多現成的組件可以使用,但是android上面的程序很多時候用系統自帶的組件都不太合適,主要是樣式可能不是我們想要的。這個時候我們就需要定