Cấp bậc tác giả:

JAVA

Cấp quyền truy cập (Permissions) hệ thống trong ứng dụng Android

Được viết bởi webmaster ngày 27/04/2018 lúc 08:26 AM
Mỗi ứng dụng Android đều cần khai báo các quyền truy cập hệ thống nếu như ứng dụng sử dụng tài nguyên bên ngoài chẳng hạn kết nối mạng, camera, tin nhắn… Bài viết này nhằm hướng dẫn các bạn cấp quyền truy cập (Permissions) hệ thống trong ứng dụng Android.
  • 0
  • 12457

Cấp quyền truy cập (Permissions) hệ thống trong ứng dụng Android

Việc khai báo cấp quyền truy cập (Permissions) hệ thống trong ứng dụng Android thật ra rất đơn giản, bạn chỉ cần khai báo các quyền tương ứng trong tập tin Manifest của ứng dụng.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="net.kenhlaptrinh">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

</manifest>

Từ phiên bản hệ điều hành Android 5.1 trở về trước thì khi cài đặt ứng dụng người dùng bắt buộc phải chấp nhận các quyền truy cập (Permissions) mà ứng dụng yêu cầu. Nhưng từ phiên bản Android 6.0 (Marshmallow) trở đi người dùng hoàn toàn có quyền kiểm soát các quyền truy cập từ ứng dụng.

Giả sử ứng dụng của bạn yêu cầu các quyền truy cập như tin nhắn, camera, sử dụng bộ nhớ, vị trí… thì trong phiên bản Android 6.0 (Marshmallow) thì bạn có thể tắt các quyền truy cập trên, tuy nhiên nếu như tắt một số quyền thì có thể ứng dụng không thể chạy được.

Vậy bài viết này mình sẽ hướng dẫn các bạn cách cấp quyền truy cập (Permissions) hệ thống trong ứng dụng Android, cũng như hiển thị thông báo yêu cầu người dùng cấp quyền cho ứng dụng đối với phiên bản Android 6.0 (Marshmallow) trở đi.

Hướng dẫn cấp quyền truy cập (Permissions) hệ thống trong ứng dụng Android:

Bước 1: Mở tập tin AndroidManifest.xml trong ứng dụng sau đó khai báo các quyền cần thiết cho ứng dụng. Ví dụ mình muốn khai báo một số quyền như camera, internet, tin nhắn…

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="net.kenhlaptrinh.androidpermissions">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.CAMERA" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Bước 2: Sau đó, trong lớp MainActivity.class mình sẽ kiểm tra xem người dùng đã cấp quyền cho ứng dụng chưa. Nếu chưa cấp quyền sẽ hiển thị thông báo yêu cầu quyền cho ứng dụng.

import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        int permission_internet = ContextCompat.checkSelfPermission(this,
                Manifest.permission.INTERNET);
        int permission_send_sms = ContextCompat.checkSelfPermission(this,
                Manifest.permission.SEND_SMS);
        int permission_camera = ContextCompat.checkSelfPermission(this,
                Manifest.permission.CAMERA);

        if (permission_internet != PackageManager.PERMISSION_GRANTED
                || permission_send_sms != PackageManager.PERMISSION_GRANTED
                || permission_camera != PackageManager.PERMISSION_GRANTED) {
            makeRequest();
        }

    }

    protected void makeRequest() {
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.INTERNET,
                Manifest.permission.SEND_SMS, Manifest.permission.CAMERA}, 1);
    }

}

Bước 3: Cuối cùng, khởi chạy ứng dụng và kiểm tra xem ứng dụng có hiển thị thông báo yêu cầu người dùng cấp quyền truy cập đối với phiên bản Android 6.0 (Marshmallow) trở đi hay không?

Nguồn bài viết: Sưu tầm

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML