在编写代码的过程中,我们经常会使用 Intent 来打开另一个 Activity,除此之外,我们还可以用 Intent 来打开其他应用中的 Activity。
首先我建立了两个 Android 项目,一个叫做 PermissionsTest1(B),另一个叫做 PermissionsTest2(A),在这个测试中要做的就是通过 A 项目打开 B 项目。
我在 A 项目中放置了一个按钮,为他设置了点击事件
Intent intent=new Intent(); intent.setClassName("com.example.permissionstest1", "com.example.permissionstest1.MainActivity"); startActivity(intent);
当我们点击这个按钮的时候,就可以打开 B 程序中的 MainActivity 了。
但是如果我们不想让别人随便打开我们的程序 B,那我们在编写程序 B 的时候有什么办法呢?
使用自定义 Permission:
首先我们需要在 B 的 Manifest 文件中定义一个 permission。
<permission android:name="com.per.permissionstest1" android:protectionLevel="normal" > </permission>
然后在我们要限制其他程序打开的 Activity 中加入这样一句话:
android:permission="com.per.permissionstest1" />
这样,这个 Activity 就被 Permission 保护了起来,如果其他的 Activity(A) 想要打开这个 Activity 的话,就必须在 A 的 Manifest 中加入:
<uses-permission android:name="com.per.permissionstest1"/>
B 的 Manifest:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.permissionstest1" android:versionCode="1" android:versionName="1.0" /> <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18"/> <permission android:name="com.per.permissionstest1" android:protectionLevel="normal"> </permission> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.permissionstest1.MainActivity" android:permission="com.per.permissionstest1" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" > <category android:name="android.intent.category.LAUNCHER" > </intent-filter> </activity> </application> </manifest>
A 的 Manifest:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.permissionstest2" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <uses-permission android:name="com.per.permissionstest1"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.permissionstest2.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> </application> </manifest>
转载请注明:热爱改变生活.cn » Permission 禁止 A 程序打开 B 程序
本博客只要没有注明“转”,那么均为原创。 转载请注明链接:sumile.cn » Permission 禁止 A 程序打开 B 程序