receiver android:exported="false"
时间: 2023-07-02 21:17:25 浏览: 61
这是一个 AndroidManifest.xml 文件中的一个组件的属性。具体来说,这是一个 receiver 组件的属性,用于指定该组件是否可以被其它应用程序调用。当该属性的值为 "false" 时,该组件只能被当前应用程序内的其它组件调用,不能被其它应用程序调用。这可以提高应用程序的安全性。如果该属性的值为 "true",则该组件可以被其它应用程序调用,但也会增加应用程序被攻击的风险。
相关问题
Android 极光推送
极光推送是一款专业的推送服务平台,可为 Android 等多个平台的应用提供推送服务。以下是在 Android 平台上使用极光推送的步骤:
1. 注册极光推送账号,获取 AppKey 和 Master Secret。
2. 在 Android 项目中添加极光推送 SDK,可以通过 Maven 或 Gradle 集成。
3. 在 AndroidManifest.xml 文件中添加权限:
```
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
<permission
android:name="${applicationId}.permission.JPUSH_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="${applicationId}.permission.JPUSH_MESSAGE" />
```
4. 在 AndroidManifest.xml 文件中添加以下代码,注册 JPushReceiver 和 JPushService:
```
<receiver
android:name="cn.jpush.android.service.PushReceiver"
android:enabled="true"
android:exported="false">
<intent-filter>
<action android:name="cn.jpush.android.intent.RECEIVE_REGISTRATION_ID" />
<action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" />
<action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" />
<action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" />
<action android:name="cn.jpush.android.intent.ACTION_RICHPUSH_CALLBACK" />
<action android:name="cn.jpush.android.intent.CONNECTION" />
<category android:name="${applicationId}" />
</intent-filter>
</receiver>
<receiver android:name=".receiver.JPushNotificationClickReceiver">
<intent-filter>
<action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED_PROXY" />
<category android:name="${applicationId}" />
</intent-filter>
</receiver>
<service
android:name="cn.jpush.android.service.PushService"
android:enabled="true"
android:exported="false"
android:process=":pushcore">
<intent-filter>
<action android:name="cn.jpush.android.intent.REGISTER" />
<action android:name="cn.jpush.android.intent.REPORT" />
<action android:name="cn.jpush.android.intent.PushService" />
<action android:name="cn.jpush.android.intent.PUSH_TIME" />
</intent-filter>
</service>
```
5. 在 Application 类中初始化 JPush SDK:
```
JPushInterface.setDebugMode(true); // 调试模式
JPushInterface.init(this);
```
6. 在推送后台中创建推送任务,设置推送目标、推送内容等参数。
7. 在应用中接收推送消息,可以通过 JPushReceiver 中的回调方法获取推送消息,然后进行处理。
以上就是在 Android 平台上使用极光推送的步骤。需要注意的是,在使用极光推送时,需要保证网络连接正常,并且在应用退出时需要调用 JPushInterface.stopPush() 方法停止推送服务。
android 极光推送别名绑定代码
以下是 Android 使用极光推送绑定别名的代码示例:
```java
import cn.jpush.android.api.JPushInterface;
// 绑定别名
JPushInterface.setAlias(context, sequence, alias);
// 解绑别名
JPushInterface.deleteAlias(context, sequence);
```
其中,`context` 参数为当前上下文对象,`sequence` 参数为请求码,`alias` 参数为需要绑定的别名。
注意事项:
- 绑定别名时,如果已经绑定了别名,则会覆盖之前的别名;
- 解绑别名时,如果当前设备没有绑定别名,则不会有任何影响。
另外,在使用极光推送时,需要在 AndroidManifest.xml 文件中添加以下权限:
```xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="cn.jpush.android.permission.RECEIVE_MSG" />
<uses-permission android:name="cn.jpush.android.permission.READ_PHONE_STATE" />
<uses-permission android:name="cn.jpush.android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="cn.jpush.android.permission.VIBRATE" />
<uses-permission android:name="cn.jpush.android.permission.RECEIVE_BOOT_COMPLETED" />
```
并且,需要在 AndroidManifest.xml 文件中添加以下服务和接收器:
```xml
<!-- 极光推送服务 -->
<service
android:name="cn.jpush.android.service.PushService"
android:enabled="true"
android:exported="false" >
<intent-filter>
<action android:name="cn.jpush.android.intent.REGISTER" />
<action android:name="cn.jpush.android.intent.REPORT" />
<action android:name="cn.jpush.android.intent.PushService" />
<action android:name="cn.jpush.android.intent.PUSH_TIME" />
</intent-filter>
</service>
<!-- 极光推送接收器 -->
<receiver
android:name="cn.jpush.android.service.PushReceiver"
android:enabled="true" >
<intent-filter android:priority="1000">
<action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />
<category android:name="${applicationId}" />
</intent-filter>
<intent-filter>
<action android:name="cn.jpush.android.intent.REGISTRATION" />
<category android:name="${applicationId}" />
</intent-filter>
<intent-filter>
<action android:name="cn.jpush.android.intent.UNREGISTRATION" />
<category android:name="${applicationId}" />
</intent-filter>
<intent-filter>
<action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" />
<category android:name="${applicationId}" />
<data android:scheme="package" />
</intent-filter>
<intent-filter>
<action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" />
<category android:name="${applicationId}" />
</intent-filter>
<intent-filter>
<action android:name="cn.jpush.android.intent.ACTION_RICHPUSH_CALLBACK" />
<category android:name="${applicationId}" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.USER_PRESENT" />
<category android:name="${applicationId}" />
</intent-filter>
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
<!-- 极光推送唤醒接收器 -->
<receiver
android:name="cn.jpush.android.service.AlarmReceiver"
android:enabled="true" />
```
以上是 Android 使用极光推送绑定别名的代码示例及注意事项。