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 3655℃ 0评论

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

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

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

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

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