給activity設定自定義許可權
阿新 • • 發佈:2019-01-09
基於 上面這邊文字的理解自己實踐了下。
比如我在一個叫networkapp的一個app上面的一個activity設定了一個自定義許可權
首先另外app的在mainfest檔案自定義一個許可權
<!-- 為networkapp宣告一個許可權 -->
<permission
android:name="com.vincent.org.networkapp.permission.ACCESS"
android:label="Networkapp custome permission"
android:protectionLevel ="normal" >
</permission>
<!-- 給需要設定自定義許可權的activity設定 -->
<activity
android:name=".LocalDataPersistentActivity"
android:label="@string/title_activity_local_data_persistent"
android:permission="com.vincent.org.networkapp.permission.ACCESS" >
<!-- 給這個activity新增外界訪問這個activity的action屬性,便於android系統查詢 -->
<intent-filter>
<action android:name="com.vincent.org.networkapp.intent.action.ACTION_VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter >
<!-- 對於intent-filter非常重要,外界app可能不知道他呼叫的app的package,所以都是用action這個屬性來刷選的。 -->
</activity>
好了,上面就是在待啟動的app工作做完了。
那麼下一步就是在呼叫方的工作了。
首先在mainfest檔案中宣告我們要使用上面定義的自定義許可權
<uses-permission android:name="com.vincent.org.networkapp.permission.ACCESS" />
然後我是直接在介面加了一個button,下面是這個button單擊事件的事件響應程式碼
public void startotherAppActivity(View view) {
//看到了沒有,我們直接把待啟動app的activity宣告的intent-filter
//節點的action屬性給拿過來構建intent例項了。不需要對方app的
//package。然後就可以跳轉到對方app。
Intent intent = new Intent(
"com.vincent.org.networkapp.intent.action.ACTION_VIEW");
startActivity(intent);
}