Permission 禁止 A 程序打开 B 程序 – 热爱改变生活
我的GitHub GitHub |     登录
  • If you can't fly, then run; if you can't run, then walk; if you can't walk, then crawl
  • but whatever you do, you have to keep moving forward。
  • “你骗得了我有什么用,这是你自己的人生”
  • 曾有伤心之地,入梦如听 此歌

Permission 禁止 A 程序打开 B 程序

Android sinvader 4279℃ 0评论

在编写代码的过程中,我们经常会使用 Intent 来打开另一个 Activity,除此之外,我们还可以用 Intent 来打开其他应用中的 Activity。

首先我建立了两个 Android 项目,一个叫做 PermissionsTest1(B),另一个叫做 PermissionsTest2(A),在这个测试中要做的就是通过 A 项目打开 B 项目。

我在 A 项目中放置了一个按钮,为他设置了点击事件

  1. Intent intent=new Intent();
  2. intent.setClassName("com.example.permissionstest1", "com.example.permissionstest1.MainActivity");
  3. startActivity(intent);

当我们点击这个按钮的时候,就可以打开 B 程序中的 MainActivity 了。

但是如果我们不想让别人随便打开我们的程序 B,那我们在编写程序 B 的时候有什么办法呢?

使用自定义 Permission:

首先我们需要在 B 的 Manifest 文件中定义一个 permission。

  1. <permission android:name="com.per.permissionstest1" android:protectionLevel="normal" > </permission>

然后在我们要限制其他程序打开的 Activity 中加入这样一句话:

  1. android:permission="com.per.permissionstest1" />

这样,这个 Activity 就被 Permission 保护了起来,如果其他的 Activity(A) 想要打开这个 Activity 的话,就必须在 A 的 Manifest 中加入:

  1. <uses-permission android:name="com.per.permissionstest1"/>

B 的 Manifest:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3.     package="com.example.permissionstest1"
  4.   android:versionCode="1"
  5.   android:versionName="1.0" />
  6. <uses-sdk
  7.   android:minSdkVersion="8"
  8.   android:targetSdkVersion="18"/>
  9. <permission
  10.     android:name="com.per.permissionstest1"
  11.     android:protectionLevel="normal">
  12. </permission>
  13. <application
  14.      android:allowBackup="true"
  15.      android:icon="@drawable/ic_launcher"
  16.      android:label="@string/app_name"
  17.      android:theme="@style/AppTheme" >
  18.  <activity
  19.      android:name="com.example.permissionstest1.MainActivity"
  20.      android:permission="com.per.permissionstest1"
  21.      android:label="@string/app_name">
  22.  <intent-filter>
  23.     <action android:name="android.intent.action.MAIN" >
  24.     <category android:name="android.intent.category.LAUNCHER" >
  25.  </intent-filter>
  26.  </activity>
  27.  </application>
  28. </manifest>

A 的 Manifest:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3.      package="com.example.permissionstest2"
  4.      android:versionCode="1"
  5.      android:versionName="1.0" >
  6.  <uses-sdk
  7.      android:minSdkVersion="8"
  8.     android:targetSdkVersion="18" />
  9.      <uses-permission android:name="com.per.permissionstest1"/>
  10.  <application
  11.      android:allowBackup="true"
  12.      android:icon="@drawable/ic_launcher"
  13.      android:label="@string/app_name"
  14.      android:theme="@style/AppTheme" >
  15.  <activity
  16.      android:name="com.example.permissionstest2.MainActivity"
  17.      android:label="@string/app_name" >
  18.     <intent-filter>
  19.         <action android:name="android.intent.action.MAIN" />
  20.         <category android:name="android.intent.category.LAUNCHER" />
  21.      </intent-filter>
  22.  </activity>
  23.  </application>
  24. </manifest>

¥ 有帮助么?打赏一下~

转载请注明:热爱改变生活.cn » Permission 禁止 A 程序打开 B 程序


本博客只要没有注明“转”,那么均为原创。 转载请注明链接:sumile.cn » Permission 禁止 A 程序打开 B 程序

喜欢 (3)
发表我的评论
取消评论
表情

如需邮件形式接收回复,请注册登录

Hi,你需要填写昵称和邮箱~

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址