android自定義權限的實現
在android開發中,有時需要利用自定義權限來保證android應用的安全,今天寫一個自定義權限的小案例。包含了訪問activity,service,以及發送廣播可廣播接受者,和自定義權限。
首先,新建兩個工程,一個叫做security,另一個叫做securitytest
在seurity中定義,聲明,并利用自定義的幾個權限,在securitytest中就像用普通的權限一樣,利用即可
security中聲明權限如下:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.security" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="18" /> <permission android:name="com.tct.permission.READ_PROVIDER" android:protectionLevel="dangerous"> </permission> <permission android:name="com.tct.apermission.WRITE_PROVIDER" android:protectionLevel="dangerous"> </permission> <permission android:name="com.tct.attach.start_activity" android:protectionLevel="normal" > </permission> <permission android:name="com.tct.attach.service.permission" android:protectionLevel="normal" > </permission> <permission android:name="com.tct.attach.broadcastreceiver" android:protectionLevel="dangerous" > </permission> <uses-permission android:name="com.tct.attach.service.permission" /> <uses-permission android:name="com.tct.attach.start_activity" /> <uses-permission android:name="com.tct.attach.broadcastreceiver" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.security.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name="com.example.security.MyService" android:permission="com.tct.attach.service.permission" > <intent-filter> <action android:name="com.test.action.service" > </action> <category android:name="android.intent.category.DEFAULT" > </category> </intent-filter> </service> <activity android:name="com.example.security.MyActivity" android:permission="com.tct.attach.start_activity" > <intent-filter> <action android:name="android.intent.action.MAIN" > </action> <category android:name="android.intent.category.DEFAULT" > </category> </intent-filter> </activity> <receiver android:name="com.example.security.MyBroadcaseReceiver" android:permission="com.tct.attach.broadcastreceiver" > <intent-filter> <action android:name="com.tct.receiver.action" > </action> </intent-filter> </receiver> <activity android:name="com.example.security.ShowReceiverActivity" > </activity> <activity android:name="com.example.security.MyBroadCast" > </activity> <provider android:name="com.example.contentprovider.MyContentProvider" android:authorities="com.liuhang.urlcontent" android:exported="true" > <!-- android:path="content://com.liuhang.urlcontent/person/3" --> <path-permission android:pathPrefix="/person" android:readPermission="com.tct.apermission.WRITE_PROVIDER" android:writePermission="com.tct.apermission.WRITE_PROVIDER" ></path-permission> <grant-uri-permission android:pathPrefix="/person"/> </provider> </application> </manifest>securitytest中的AndroidManifest.xml文件如下:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.securitytest" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="12" android:targetSdkVersion="18" /> <uses-permission android:name="com.tct.attach.service.permission"/> <uses-permission android:name="com.tct.attach.start_activity"/> <uses-permission android:name="com.tct.attach.broadcastreceiver"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="com.tct.permission.READ_PROVIDER"/> <uses-permission android:name="com.tct.apermission.WRITE_PROVIDER"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.securitytest.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name="com.example.securitytest.MyTestReceiver"> <intent-filter> <action android:name="com.test.permission.sendbroadcast"></action> </intent-filter> </receiver> </application> </manifest>只有當在securitytest中利用了這些權限才可以訪問對應的activity,service,contentprovider以及接受和發送對應的廣播。
源碼如下:http://download.csdn.net/detail/mockingbirds/8109057
來自: http://blog.csdn.net//mockingbirds/article/details/40682679
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!