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


相关知识:
安卓8
对于一些使用安卓系统的用户来说,默认开发者设置是一个非常实用的功能,通过开启开发者选项,用户可以更好地调试软件、优化系统、调整应用等等。但是在一些情况下,用户可能需要关闭默认开发者设置,使其不对设备产生任何影响。那么,接下来我将详细介绍一下安卓8.0怎么关
2023-05-23
安卓12开发者更新内容
Android 12是Android操作系统的最新版本,于2021年5月19日在Google I/O开发者大会上发布。它带来了一些重要的变化和新功能,包括:安全和隐私改进、用户体验改进、控制面板、新的调色板和动画以及针对可折叠设备的优化等。1. 安全和隐私
2023-05-23
安卓10开发者模式设置技巧
安卓开发者模式是一个被一般用户忽略的系统设置选项,但对于开发者来说,这是个非常有用的工具。开发者模式为开发者提供了一些高级配置和设置选项,可以帮助他们更好地调试和测试应用程序。本次文章将介绍如何在安卓10上打开开发者模式,并介绍一些常用的开发者模式设置技巧
2023-05-23
python和java能开发安卓app吗
首先需要明确的是,Android操作系统的应用程序只能使用Java语言或Kotlin语言进行开发,这是由于Android SDK(Software Development Kit)提供了Java编程语言的开发工具和库,Java编程语言是Android平台上
2023-05-23
青岛安卓app开发服务好
青岛是中国的一个科技创新城市,也是国家信息技术产业示范区。作为一个重要的城市,青岛有很多高质量的安卓app开发服务提供商。以下是一些青岛安卓app开发服务的优势:1. 多年经验和技术专长。青岛的安卓app开发服务提供商有着多年的经验和技术专长,他们能够根据
2023-04-28
无代码安卓系统app制作
无代码安卓系统的APP制作,是指开发人员无需编写任何代码,便可轻松创建安卓应用程序。这种技术被称为无代码或低代码开发,它利用图形界面和预先编写的代码组件,使非专业开发者能够快速创建自己所需的应用程序。下面介绍一些无代码安卓APP制作的开发工具和平台:1.
2023-04-28
安卓和ios通用app开发
安卓和iOS的应用开发有一些相似的地方,例如都需要使用编程语言和开发工具进行开发,但也有一些重要的区别,主要在于两个方面:1. 编程语言和开发工具的不同Android 应用开发主要使用 Java 语言和 Android SDK 开发工具,而 iOS 应用开
2023-04-28
安卓使用的app都是谁开发的
安卓系统中的应用程序(App)大部分是由开发者开发的。开发者可以使用Java编程语言和Android SDK进行开发。在应用程序被开发和发布之前,需要先进行测试和审核,然后发布到应用商店和其他渠道上。安卓系统的应用程序可以通过Java API调用安卓系统提
2023-04-28
安卓从零开发视频点播app
安卓从零开发视频点播应用从零开始开发一个安卓视频点播应用需要具备一定的安卓开发基础,包括掌握 Java 或 Kotlin 语言、熟悉 Android Studio 开发环境,以及了解 Android 应用开发的基本架构。本教程将指导你如何分步构建一个基本的
2023-04-28
安卓app开发技术路线图
安卓 App 开发技术路线图主要包括以下几个方面:1. Java 基础:Android 应用程序主要使用 Java 语言进行开发。因此,熟悉 Java 基础语法、面向对象编程思想和 Java 标准库是非常重要的。建议初学者学习完 Java 基础后再进入安卓
2023-04-28
安卓app如何打包上线
安卓应用程序打包上线是一个非常重要的步骤,它是应用程序走向市场的关键步骤。以下是打包上线的原理和详细介绍:一、原理安卓应用程序打包上线的原理是将我们在开发阶段生成的代码转成Dalvik字节码,然后再将它压缩成APK文件格式。Dalvik字节码只能在安卓系统
2023-04-28
安卓app 用什么语言开发比较简单
在编写安卓应用程序时,有多种编程语言和框架可供选择,但是原生安卓应用开发主要采用Java和Kotlin这两种语言。对于新手来说,Kotlin语言更简单,易于入手。下面将详细介绍Kotlin语言以及其在安卓开发中的应用。Kotlin是一种静态类型编程语言,运
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1