偶爾發現一個人寫的文章,是關於自訂許可權的。具體的大家看這面這篇文章的文章吧,我沒想到它能用到哪,但是確實很有意思。 實現這樣的功能:兩個應用程式A和B,B要有相應的許可權才能訪問A中的某個Activity。 1。首先看A的實現 先在A的Activity裡加一個TextView,寫些內容方便等下檢驗。下面設定manifest.xml,增加一個自訂的許可權 [html] <span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="giuz.blog1" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name="giuz.blog1.ActivityBlog1" android:label="@string/app_name" android:permission="giuz.permission.SEE"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <permission android:protectionLevel="normal" android:name="giuz.permission.SEE"></permission> </manifest> </span> 底線部分是要注意的。 第一個底線,這個Activity的android:name要寫包名+類名:giuz.blog1.ActivityBlog1,不然等下會報找不到Activity的錯誤。www.2cto.com <permission android:protectionLevel="normal" android:name="giuz.permission.SEE"></permission>這句,android:protectionLevel是必須要的,它的值normal或者dangerous、signature、signatureOrSystem。android:name的值就是自訂的許可權,格式是**.permission.**(giuz.x.permission.SEE也可以的)。2。B的實現B的Activity裡通過Intent來訪問,在My Code裡,下面的代碼是放在一個按鈕的點擊事件中的: Intent intent = new Intent();//下面是用Component實現//如果我寫成intent.setClassName("giuz.blog1", "giuz.blog1.ActivityBlog1")//卻會報錯,不理解。intent.setComponent(new ComponentName("giuz.blog1", "giuz.blog1.ActivityBlog1"));startActivity(intent) 第二行的第一個參數是A的那個被訪問的Activity的包名,第二個參數是包名+類名因為A現在有了自訂的許可權,而B現在還沒有許可權訪問,所以如果現在訪問會出現 Permission Denial的報錯。給B加上許可權,就是在B的manifest.xml裡加上下面這句<uses-permission android:name="giuz.permission.SEE"></uses-permission>