持续更新安卓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技术站