在编写代码的过程中,我们经常会使用 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 程序