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开发中需要非常注意的问题之一。


相关知识:
安卓11怎么关闭开发者选项
安卓11为开发人员提供了多种功能,在开发者模式下可以进行一些高级设置和调试。但是对于大多数用户来说,这些功能并不需要,过多的设置也可能影响手机的正常使用。所以,在使用完这些功能后,最好及时关闭开发者模式。以下是关于在安卓11中关闭开发者选项的方法和原理的详
2023-05-23
安卓 降噪 开发
随着安卓设备的飞速发展,越来越多的人开始使用安卓设备进行听音乐、打电话、录音等操作,但是由于环境的嘈杂声音,这些音频操作会被噪音影响,使得音质产生损失,影响用户体验。因此,降噪技术在安卓设备上成为了必备的技术之一。本文将针对安卓降噪技术的原理和实现进行详细
2023-05-23
安卓 推送开发
安卓推送是指在安卓平台上实现消息推送功能,让应用程序可以向手机用户推送消息。推送功能是一种基于云服务的技术,可以让开发者把消息发送到云端,然后再推送到手机用户的设备上。本文将详细介绍安卓推送的原理以及如何实现。一、安卓推送的原理在安卓推送的过程中,主要涉及
2023-05-23
安卓 开发从入门到精通
安卓应用开发是目前最热门的开发领域之一。通过安卓应用开发,人们可以为自己的手机或平板电脑开发出各种各样的实用程序和游戏,从而极大地拓展使用和娱乐的范围。如果你对安卓应用开发感兴趣,下面就是一份从入门到精通的详细介绍。一、安卓应用开发的原理安卓应用程序是基于
2023-05-23
go做安卓应用开发用什么语言
在安卓应用开发中,常用的编程语言有Java和Kotlin。虽然Go语言逐渐受到关注,但它并不被推荐作为安卓应用开发的首选语言,以下是原因。首先,安卓应用开发的主流语言Java和Kotlin都能够使用安卓SDK(Software Development Ki
2023-05-23
2020年做安卓开发好还是web开发
在 2020 年,安卓和 Web 开发都是非常热门的领域。但是,选择哪一种更好,取决于您的个人兴趣、目标和优势。在此,将向您介绍一些安卓和 Web 开发的重要因素,以帮助您做出更明智和知情的选择。安卓开发安卓开发是指开发适用于 Android 操作系统的应
2023-05-23
想开发一个安卓的app
开发一个安卓应用程序需要了解以下几个方面。在本篇文章中,我将向你介绍开发安卓应用程序的基本原理和详细介绍。1. 安卓开发环境和工具:要开发一个安卓应用程序,首先需要一套开发环境和工具。通常,我们使用 Android Studio 作为开发环境。Androi
2023-04-28
安卓开发一个app成本多少钱
安卓开发一个app的成本因素很多,因此很难给出一个具体的数额。不过,为了帮助你更好地了解成本构成,我们可以从以下几个方面进行详细介绍:1. app的复杂度和功能:开发一个简单的app和一个具有复杂数量级功能的app所需的资源和时间相差很大。根据你的应用需求
2023-04-28
安卓开发app怎么实现搜索功能
在安卓开发中实现搜索功能,主要可以通过以下两个步骤来完成:1. 创建搜索界面和布局:在创建搜索布局时,可以添加搜索框和搜索按钮,也可以添加一些需要进行搜索的标签或分类选项,使用户更方便快捷的进行搜索。2. 实现搜索功能:在安卓中,可以使用SearchVie
2023-04-28
安卓app开发全屏代码
安卓开发中,我们经常需要将应用设置为全屏模式,以达到更好的视觉效果或提高应用的沉浸式体验。全屏代码修改的原理主要是通过操作系统API,隐藏状态栏、导航栏或设置沉浸式的背景。下面我们针对不同的适应场景,展示几种常见的全屏代码实现方式和详细介绍。### 方法一
2023-04-28
天津苹果安卓app开发
移动应用程序开发,是指针对移动设备(包括手机、平板电脑等)的操作系统,使用软件开发工具和相应的技术开发出各类应用程序,方便用户进行各种操作和服务。苹果和安卓是目前市场上最流行的移动操作系统,因此在移动应用程序开发中,常常会涉及到苹果和安卓的开发。苹果app
2023-04-28
制作app的app安卓版
制作APP的APP,也叫做APP制作工具或APP建设平台,是一种能够帮助非专业开发人员或者没有编程知识的用户创建自己的APP的工具。使用这些工具制作APP无需编写复杂的代码,只需要简单的拖拽操作和编辑界面,就能轻松制作出一个具有基本功能的APP。这里推荐一
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1