Android--Android自訂許可權

來源:互聯網
上載者:User

偶爾發現一個人寫的文章,是關於自訂許可權的。具體的大家看這面這篇文章的文章吧,我沒想到它能用到哪,但是確實很有意思。 實現這樣的功能:兩個應用程式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>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.