java开发安卓9

随着Android版本的不断升级,短信权限管理越来越严格,开发者需要在开发Android应用的过程中注意对短信权限的适配。本文将介绍如何在Android 9.0上适配短信权限。

1. 短信权限简介

在Android系统中,短信权限是需要动态申请的权限之一。如果应用需要在用户的手机上读取或发送短信,必须获取到短信权限。在Android 6.0之前,短信权限被包含在了“电话”权限中,只要申请了该权限,应用就可以读取或发送短信。但是从Android 6.0开始,短信权限被拆分出来,必须单独申请。

2. Android 9.0对短信权限的变化

在Android 9.0中,Google进一步加强了对短信权限的管理,主要有以下几个变化:

(1)对短信的限制更加严格

Android 9.0限制了应用对用户的所有短信的访问权限,只有用户选择将某个应用设为短信应用程序,才能访问用户的所有短信。其他应用只能访问用户回复或创建的短信。

(2)限制部分非系统应用读取用户的短信

除了设为短信应用程序的应用,其他非系统应用只能读取其自己创建或用户回复的短信。这就使得一些垃圾信息过滤器、备份应用、智能短信等应用受到了影响。

3. 如何在Android 9.0上适配短信权限

(1)申请短信权限

首先我们需要在Manifest.xml文件中声明需要使用短信权限:

```xml

```

然后在代码中动态申请短信权限,如下所示:

```java

if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_SMS)

!= PackageManager.PERMISSION_GRANTED) {

ActivityCompat.requestPermissions(MainActivity.this,

new String[]{Manifest.permission.READ_SMS},

MY_PERMISSIONS_REQUEST_READ_SMS);

}

```

此时,用户会看到一个弹窗,询问是否授权应用读取短信。

(2)设为短信应用程序

在Android 9.0上,开发者需要动态地设置应用为短信应用程序。只有设为短信应用程序,应用才有权访问用户的所有短信。

要让应用成为短信应用程序,需要在代码中设置,如下所示:

```java

if (SmsManager.getDefault().getSubscriptionId() == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {

ComponentName componentName = new ComponentName(MainActivity.this, SmsReceiver.class);

getPackageManager().setComponentEnabledSetting(

componentName,

PackageManager.COMPONENT_ENABLED_STATE_ENABLED,

PackageManager.DONT_KILL_APP);

Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT).putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, getPackageName());

startActivity(intent);

}

```

该代码将该应用的包名传入到设置默认短信应用程序的Intent中,启动该Intent后,系统会弹出一个提示框,询问用户是否将该应用设为默认的短信应用程序。

总结

通过上述介绍可以看出,在Android 9.0上适配短信权限相对于之前的版本更加严格,开发者需要在代码中设置为短信应用程序,才能访问到用户的短信。当然,这也增加了用户的隐私保护,让应用不能随意访问用户的短信,这也是在Android开发中需要非常注意的问题之一。


相关知识:
labview开发安卓插件
LabVIEW是一个流程化编程语言和集成开发环境,主要用于数据采集、仪器控制和自动化测试等。LabVIEW可以开发各种类型的应用程序,包括桌面应用、Web应用、嵌入式系统应用、移动设备应用等。本文将介绍如何使用LabVIEW开发Android插件。原理:A
2023-05-23
java安卓开发学什么
如果你想开始学习Java安卓开发,首先你需要了解Java编程语言以及面向对象编程的概念。以下是一些你需要学习的重要内容:1. Java基础Java是一种面向对象的编程语言,它包括了许多基本的编程概念和操作方法。这些包括数据类型、变量、运算符、控制流程语句、
2023-05-23
eclipse开发安卓app步骤
Eclipse是一款免费开源的综合性IDE(集成开发环境),与Google的Android SDK(软件开发工具包)结合就可以使用它来开发安卓应用程序。下文将详细介绍如何使用Eclipse开发安卓应用程序。1. 下载和安装JDK (Java Develop
2023-05-23
app怎么开发 安卓
App是手机应用程序的简称,而移动应用程序也在日常使用中成为人们越来越必不可少的一部分。相应地,也有越来越多的人想要开发自己的应用程序。作为一个拥有丰富互联网知识的博主,可以为大家介绍安卓移动应用程序的开发原理和教程。下面是一个针对初学者的安卓App开发的
2023-05-23
有源码开发安卓app
题目:有源码开发安卓APP(原理与详细介绍)Android(安卓)是由谷歌(Google)推出的一款手机操作系统,基于Linux内核。通过开发安卓APP可以让用户在智能手机上体验到更加丰富、便捷的功能。这篇文章将教你如何从零开始开发一个安卓APP,主要包括
2023-04-28
开发苹果或安卓的购物app
开发一个苹果(iOS)或安卓(Android)的购物应用程序需要经历几个重要步骤。在本篇文章中,我们将了解开发购物应用程序的基本原理和详细介绍。一、概念和规划概念和规划阶段是将你的购物应用程序的想法和目标转化为一个结构化的计划。在这个阶段,需要进行以下操作
2023-04-28
开发一个基于安卓外卖app
在这篇文章中,我们将详细讨论如何开发一个基于安卓的外卖应用。我们将了解从项目开始到完成的整个过程,包括计划、设计和开发。这将是一个入门级的教程,适合那些在安卓开发领域新手的人。1.项目规划首先,你需要规划你的外卖应用的基本功能和结构。如下是一个典型的外卖应
2023-04-28
安卓系统用什么app开发票
在Android系统上,可以使用多种开发工具和语言来创建应用程序。这里我将介绍几种流行的开发工具和语言,以及它们的基本原理。1. Android Studio(官方IDE)Android Studio是谷歌官方推荐的Android开发工具,基于JetBra
2023-04-28
安卓开发app开发环境
Android开发环境主要包括以下几个方面:Java开发环境、Android SDK、开发工具Android Studio、模拟器或真机设备。1. Java开发环境Android应用程序都是使用Java语言编写的,因此,需要安装JDK(Java Devel
2023-04-28
安卓图片打包app
安卓图片打包app可以理解为一种将多张图片打包成一个文件的工具。这种打包方法可以有效的减小apk的大小,提高应用程序运行的速度。下面将介绍一下其中的原理和详细步骤。原理:在安卓系统中,每一个应用程序都有一个专属的文件系统,其中包含了应用程序的各种资源,包括
2023-04-28
安卓原生app开发环境搭建
安卓原生app开发需要安装Java JDK、Android SDK和Android Studio。下面将详细介绍安装过程及注意事项。1. 安装Java JDKJava JDK是Java SE Development Kit的缩写,是Java语言的软件开发工
2023-04-28
安卓app开发请求ipv6
IPv6(Internet Protocol version 6,互联网协议第6版)是互联网的下一代协议。与当前广泛使用的IPv4协议相比,IPv6的地址空间更大、安全性更高、性能更好,已经成为未来网络发展的必然趋势。在安卓App开发中,如果要支持IPv6
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1