android 警告:Exported activity does not require permission

在一个应用程序中添加了多个antivity后,在manifest.xml文件中会除了主Activity外,其它的Activity属性中都会有个警告:

Exported activity does not require permission

这是因为在Activity中添加了intent-filter属性,这个属性的添加意味着该Activity已经暴露给了不同进程的应用,也就是
说其它的应用程序不需要任何权限就可以自由的实例化该Activity。显然,如果不是有特殊需求,没人会希望自己写得应用程序会有这么个隐患。

解决方法:
在Activity中添加:
android:exported="false"。

还有一种解决方法是定义Activity的权限。

先在<manifest>标签下加入

<permission
android:protectionLevel="normal"
android:name="oem.permission.SENDMAIL"></permission>

然后在<service>标签下

android:permission="oem.permission.SENDMAIL"

<service android:permission = "oem.permission.SENDMAIL"  android:name = ".AIDLService" >
<intent-filter>
<action android:name = "com.example.server.AIDLService" />
<category android:name = "android.intent.category.DEFAULT" />
</intent-filter>
</service>

android 警告:Exported activity does not require
permission

时间: 2024-10-24 16:55:52

android 警告:Exported activity does not require permission的相关文章

Exported activity does not require permission

根据android资料解释,如题所示的警告:Exported activity does not require permission意味着:在一个应用程序中添加了多个antivity后,是因为在Activity中添加了intent-filter属性. 上述这个属性的添加意味着,该Activity已经暴露给了不同进程的应用.也就是说,其它的应用程序不需要任何权限就可以自由的实例化该Activity.显然,如果不是有特殊需求,没人会希望自己写得应用程序会有这么个隐患. 解决方法之一是在Activi

Exported service does not require permission问题。

今天在编辑一个简单的aidl的例子的时候遇到的一个小问题.本来编辑完后准备运行,无意中看到AndroidManifest.xml有个警告,内容为“Exported service does not require permission”.配置文件代码如下: 1 <service android:name=".AidlService"> 2 <intent-filter > 3 <action android:name="com.example.m

Android application 和 activity 标签详解

extends:http://blog.csdn.net/self_study/article/details/54020909 Application 标签 android:allowTaskReparenting Android:allowTaskReparenting=["true" | "false"] 表明了这个应用在 reset task 时,它的所有 activity 是否可以从打开它们的 task 栈中迁移到它们声明的 taskAffinity 亲和

[android警告]AndroidManifest.xml警告 Not targeting the latest versions of Android

警告:Not targeting the latest versions of Android; compatibility modes apply.Consider testing and updating this version. Consult the android.os.Build.VERSION_CODES javadoc for details. ANDROID SDK 版本是19. <?xml version="1.0" encoding="utf-8

Android开机启动Activity界面

1,原理: 当Android系统完成BOOT阶段之后,就会发送一条名为 ACTION_BOOT_COMPLETED 的广播,我们便可在一个BroadcastReceiver中捕获这条广播,然后启动我们的Activity或者Service,当然要注意的是,我们的application必须具有捕获该广播的权限,下面请看具体步骤: 第一步:首先要有一个用于开机启动的Activity或者Service,这里以系统自己创建的最简单的Activity为例进行讲解. package com.billhoo.s

Android - 警告Nested weights are bad for performance

Android - 警告Nested weights are bad for performance 本文地址: http://blog.csdn.net/caroline_wendy 原因: Layout weights require a widget to be measured twice. When a LinearLayout with non-zero weights is nested inside another LinearLayout with non-zero weigh

android内存优化-Activity, Thread引起的内存泄露0

Android编程中一个共同的困难就是协调Activity的生命周期和长时间运行的任务(task),并且要避免可能的内存泄露.思考下面Activity的代码,在它启动的时候开启一个线程并循环执行任务. 1 /** 2 * 一个展示线程如何在配置变化中存活下来的例子(配置变化会导致创 3 * 建线程的Activity被销毁).代码中的Activity泄露了,因为线程被实 4 * 例为一个匿名类实例,它隐式地持有外部Activity实例,因此阻止Activity 5 * 被回收. 6 */ 7 pu

Android 四大组件------Activity

一.定义软件打开的主activity 当用户点开软件时,系统会默认调用app中声明为"launch"(或者"main")的activity中的onCreate()方法.我们一般在AndroidManifest.xml中定义主activity. <activity android:name=".MainActivity" android:label="@string/app_name"> <intent-fil

Android入门:Activity四种启动模式

Android入门:Activity四种启动模式 一.启动模式介绍 启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的标签的android:launchMode属性设置: 启动模式有4种,分别为standard.singleTop.singleTask.singleInstance: 讲解启动模式之前,有必要先讲解一下“任务栈”的概念; 任务栈 每个应用都有一个任务栈,是用来存放Activity的,功能类似于函数调用的栈,先后顺序代表了Activity