[持续更新]安卓6.0/Android M开发者预览版3更新内容大全

yizhihongxing

持续更新安卓6.0/ Android M开发者预览版3更新内容大全

简介

本文章主要介绍安卓6.0/ Android M开发者预览版3更新的详细内容。该预览版的更新主要是对先前版本的一些已知问题的修复和一些新增功能的添加。本文将会列举这些修改和新增功能,并对其中重要的信息进行一些补充和解析。

更新内容

1. 权限控制

Android M相对于以前的版本,在权限控制上有了大量的改进。这一部分的更新主要增加了以下内容:

  • 运行时权限:
    相比以前,Android M 为应用程序开发加入了运行时权限的控制,当应用程序需要使用权限时,系统将会提醒用户是否同意授权;当程序正在使用的权限遭到撤销时,系统也将会提醒用户。

代码示例:

if (ContextCompat.checkSelfPermission(thisActivity,
                Manifest.permission.READ_CONTACTS)
        != PackageManager.PERMISSION_GRANTED) {

    // Permission is not granted
    // Should we show an explanation?
    if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
            Manifest.permission.READ_CONTACTS)) {
        // Show an explanation to the user asynchronously -- don't block
        // this thread waiting for the user's response! After the user
        // sees the explanation, try again to request the permission.
    } else {
        // No explanation needed; request the permission
        ActivityCompat.requestPermissions(thisActivity,
                new String[]{Manifest.permission.READ_CONTACTS},
                MY_PERMISSIONS_REQUEST_READ_CONTACTS);

        // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
        // app-defined int constant. The callback method gets the
        // result of the request.
    }
}
  • 应用程序默认权限:
    在 Android M当中,应用程序默认授予了相对较少的权限,需要由用户手动去授权。

代码示例:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.myapplication">

   <uses-permission android:name="android.permission.READ_CONTACTS" />
   <uses-permission android:name="android.permission.WRITE_CONTACTS" />

   <application ... />

</manifest>

2. 新增的API

  • App Links API:
    新增加的App Links API提供了能够在应用程序内部打开网页链接的功能。通过这个API,当用户点击一个带有特殊标记(domain-association或者autoVerify="true")的web页链接时,手机将会自动唤醒相应的应用程序。

代码示例:

public class MainActivity extends Activity {

  ...

  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main_activity);

    // When user shares with our app we set a flag to remember it
    if ("com.example.myapplication.VIEW".equals(getIntent().getAction())) {
      SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
      SharedPreferences.Editor editor = preferences.edit();
      editor.putBoolean("hasShared", true);
      editor.commit();
    }

    // Only show the share button if a previous share has taken place
    findViewById(R.id.share_button).setVisibility(hasShared() ? View.VISIBLE : View.GONE);
  }

  /**
   * Gets whether the user has already shared something with us
   */
  private boolean hasShared() {
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
    return preferences.getBoolean("hasShared", false);
  }

  /**
   * Starts the share flow
   */
  public void onShareClicked(View view) {
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setData(Uri.parse("http://example.com/myapplink"));
    startActivity(intent);
  }
}
  • Fingerprint API:
    Android M新增加的指纹API使得开发人员可以在自己的应用程序内部使用指纹识别技术。该API会检查是否已经有指纹硬件以及相应的权限,然后通过使用指纹识别技术来获取认证信息,从而完成用户控制认证的操作。

代码示例:

public class MainActivity extends AppCompatActivity {

    private FingerprintManager fingerprintManager;
    private KeyguardManager keyguardManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 获取设备管理服务
        fingerprintManager = (FingerprintManager) getSystemService(Context.FINGERPRINT_SERVICE);
        keyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);

        // 检查设备是否支持指纹识别
        if (!fingerprintManager.isHardwareDetected()) {
            // 若不支持则结束程序
            Toast.makeText(this, "您的设备不支持指纹识别",Toast.LENGTH_LONG).show();
            finish();
        } else if (ActivityCompat.checkSelfPermission(this, Manifest.permission.USE_FINGERPRINT) != PackageManager.PERMISSION_GRANTED) {
            // 检查应用是否有权限使用指纹识别
            Toast.makeText(this, "请到设置中开启指纹权限",Toast.LENGTH_LONG).show();
            ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.USE_FINGERPRINT},1);
        } else if (!keyguardManager.isKeyguardSecure()) {
            // 检查手机是否开启密码
            Toast.makeText(this, "请到设置中开启密码",Toast.LENGTH_LONG).show();
        } else if (!fingerprintManager.hasEnrolledFingerprints()) {
            // 检查用户是否录入指纹
            Toast.makeText(this, "请到设置中录入指纹",Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(this, "指纹识别已就绪",Toast.LENGTH_LONG).show();
        }
    }
}

结论

本文列举了Android M开发者预览版3的一些重要更新,特别是对于权限控制和新增的API进行了详细的介绍和示例。通过对这些新功能的深入了解,开发者们可以更好地掌握Android M的特性,更高效地开发出更加优秀的应用程序。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:[持续更新]安卓6.0/Android M开发者预览版3更新内容大全 - Python技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • 7zip在dos命令行用法总结

    7zip在DOS命令行用法总结 7zip 是一款压缩/解压缩工具,安装完成后可以在命令行窗口中使用。本篇文章将详细讲解7zip在DOS命令行中的用法。 安装7zip 首先需要安装7zip,可以从官网下载最新版本的安装文件。 安装完成后,打开命令行窗口,输入“7z”命令,如果命令行窗口中出现7zip的说明,说明7zip已经安装成功。 常用命令 7zip最常用的…

    other 2023年6月27日
    00
  • 动态给表添加删除字段并同时修改它的插入更新存储过程

    动态给表添加删除字段并同时修改它的插入更新存储过程是在数据库设计与开发中非常常见的需求,随着业务需要的变化,我们需要灵活地对表结构进行调整以保持数据完整性和一致性。下面是实现该需求的完整攻略: 第一步:添加删除字段 添加字段 要动态添加字段,我们需要使用 ALTER TABLE 语句。例如,我们有一张 users 表,现在需要添加一个 age 字段,那么我们…

    other 2023年6月25日
    00
  • java弹幕小游戏1.0版本

    Java弹幕小游戏1.0版本是一款基于Java语言的游戏,支持玩家与电脑对战。以下是游戏的完整攻略: 准备工作 确保电脑已安装Java运行环境(JRE)。 下载并安装Java弹幕小游戏1.0版本软件。 开始游戏 启动Java弹幕小游戏1.0版本软件。 在主界面中选择单人游戏或双人游戏。 如选择单人游戏,则需要选择电脑难度级别,分别有初级、中级、高级三种选择。…

    other 2023年6月27日
    00
  • C语言string库strcpy、strcmp、strcat函数的使用

    下面就是关于C语言string库中的strcpy、strcmp、strcat函数的使用攻略: strcpy函数的使用 简介 strcpy函数用来将一个字符串复制到另一个字符串中,其格式如下: char *strcpy(char *dest, const char *src); 其中,dest是目标字符串,src是源字符串。函数返回指向目标字符串的指针。 需要…

    other 2023年6月20日
    00
  • linux定时任务crontab

    Linux定时任务crontab的完整攻略 Crontab是Linux系统中的一个定时任务管理工具,可以帮助用户在指定的时间自动执行某些命令或脚本。本文将为您提供Linux定时任务crontab的完整攻略,包括crontab的语法、使用方法、示例说明等内容。 crontab的语法 Crontab的语法由6个字段组成,分别表示分钟、小时、日、月、星期和要执行的…

    other 2023年5月6日
    00
  • PHP网站自动化配置的实现方法(必看)

    下面是关于“PHP网站自动化配置的实现方法(必看)”的完整攻略。 1. 概述 在搭建PHP网站的时候,往往需要手动配置很多东西,比如数据库链接、权限设置、路径定义等等,这些都是比较费时费力的工作。因此,我们可以通过编写自动化脚本来快速完成网站的配置,提高工作效率。本文将介绍实现PHP网站自动化配置的方法。 2. 实现方法 2.1 编写脚本 我们可以利用PHP…

    other 2023年6月27日
    00
  • python学习Selenium介绍及安装部署详解

    Python学习Selenium介绍及安装部署详解 什么是Selenium Selenium是一个用于自动化浏览器操作的工具,支持多种浏览器,如Chrome、Firefox等。它可以模拟用户的行为,例如点击按钮、输入文本、提交表单等。 为何要学习Selenium Selenium在Web开发中有着广泛的应用,可以帮助我们完成一些自动化测试、自动化填表、自动化…

    other 2023年6月27日
    00
  • win10怎么初始化电脑设置?Win10初始化电脑操作教程

    首先,需要明确一下何为“初始化电脑设置”?简单地说,就是恢复出厂设置。在重装系统、升级系统、更换设备或者出现系统故障的情况下,将电脑恢复到最开始使用时的状态。 下面是在Win10系统中初始化电脑设置的步骤: 步骤一 进入“更新和安全”设置菜单 1.1 点击Win10桌面右下角的“通知”图标,在接下来的弹出菜单中选择“所有设置”。 1.2 进入“设置”菜单后,…

    other 2023年6月20日
    00
合作推广
合作推广
分享本页
返回顶部