Tìm hiểu android cơ bản - permission

Thảo luận trong 'Tư vấn - Du học - Tuyển sinh' bắt đầu bởi t11nguyen, 24 Tháng sáu 2017.

  1. t11nguyen

    t11nguyen Member Thành viên

    Bài viết:
    141
    Đã được thích:
    0
    Diendanraovataz.net - Diễn đàn rao vặt - Đăng tin mua bán - Quảng cáo miễn phí - Hiệu quả - Hệ quản lý Android kiểm soát an ninh chính nó và thông tin riêng của người mua bằng cách thức chạy những vận dụng Android trên một môi trường ảo riêng (thuật ngữ gọi là Sandbox), môi trường ảo này sở hữu tài nguyên riêng, ko chạm gì tới tài nguyên của hệ quản lý, nếu như vận dụng muốn tiêu dùng tài nguyên bên ngoài Sandbox thì vận dụng phải xin permission – quyền tiêu dùng. Tùy thuộc vào loại tài nguyên mà vận dụng muốn truy nã cập, hệ quản lý sẽ cấp quyền tiêu dùng tự động hoặc sẽ phải hỏi ý kiến của người mua thì mới được tiêu dùng. hướng dẫn về bài

    Khai báo Permission
    Tùy vào loại tài nguyên cần tiêu dùng mà vận dụng sẽ phải khai báo permission cho thích hợp. những permission sẽ được khai báo trong file AndroidManifest.xml. Tùy vào loại dữ liệu sở hữu mức độ tây riêng tới mức nào mà hệ quản lý sẽ tự động cấp quyền hoặc phải xin ý kiến người mua, chẳng hạn như quyền tiêu dùng đèn pin sẽ được cấp ngay, trong khi quyền tầm nã cập danh sách số điện thoại giao thông sẽ phải hỏi quan điểm người dùng… bí quyết các bạn cấp quyền cũng khác nhau theo từng phiên bản Android, chả hạn như đối có phiên bản Android 5.1 trở về trước thì các bạn sẽ cấp quyền trong công đoạn cài đặt áp dụng, còn ở phiên bản Android 6.0 trở lên thì các bạn sẽ cấp quyền khi áp dụng đang chạy.

    Xác định cái quyền cần dùng
    bình thường thì áp dụng sẽ cần dùng đến các cái dữ liệu mà bản thân nó chẳng thể tự tạo ra được, hay các hành động có thể khiến ảnh hưởng đến hành vi của smartphone hoặc các áp dụng khác. chả hạn như quyền tầm nã cập Internet, quyền dùng Camera, quyền tắt/bật Wifi…

    các quyền lại được chia khiến đa dạng cấp độ, trong chậm tiến độ 2 cấp độ cao nhất là bình thường (normal)nguy hiểm (dangerous). Quyền bình thường là các quyền dùng tài nguyên mà ít có rủi ro đối có sự riêng tây của các bạn, cái quyền này sẽ được hệ điều hành tự động cấp. Dưới đây là danh sách các quyền bình thường có trong phiên bản API 23:

    • ACCESS_LOCATION_EXTRA_COMMANDS
    • ACCESS_NETWORK_STATE
    • ACCESS_NOTIFICATION_POLICY
    • ACCESS_WIFI_STATE
    • BLUETOOTH
    • BLUETOOTH_ADMIN
    • BROADCAST_STICKY
    • CHANGE_NETWORK_STATE
    • CHANGE_WIFI_MULTICAST_STATE
    • CHANGE_WIFI_STATE
    • DISABLE_KEYGUARD
    • EXPAND_STATUS_BAR
    • GET_PACKAGE_SIZE
    • INSTALL_SHORTCUT
    • INTERNET
    • KILL_BACKGROUND_PROCESSES
    • MODIFY_AUDIO_SETTINGS
    • NFC
      • SET_ALARM
      • SET_TIME_ZONE
      • SET_WALLPAPER
      • SET_WALLPAPER_HINTS
      • TRANSMIT_IR
      • UNINSTALL_SHORTCUT
      • USE_FINGERPRINT
      • VIBRATE
      • WAKE_LOCK
      • WRITE_SYNC_SETTINGS

    • READ_SYNC_SETTINGS
    • READ_SYNC_STATS
    • RECEIVE_BOOT_COMPLETED
    • REORDER_TASKS
    • REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
    • REQUEST_INSTALL_PACKAGES
    Quyền hiểm nguy là quyền dùng các cái tài nguyên có can dự đến sự riêng tây của các bạn hoặc có thể ảnh hưởng đến hệ điều hành và các áp dụng khác. cái quyền này cần được sự cho phép của các bạn. Dưới đây là danh sách các quyền hiểm nguy có trong phiên bản API 23:

    • READ_CALENDAR
    • WRITE_CALENDAR
    • CAMERA
    • READ_CONTACTS
    • WRITE_CONTACTS
    • GET_ACCOUNTS
    • ACCESS_FINE_LOCATION
    • USE_SIP
    • PROCESS_OUTGOING_CALLS
    • BODY_SENSORS
    • SEND_SMS
    • RECEIVE_SMS
    • READ_SMS
    • RECEIVE_WAP_PUSH
    • RECEIVE_MMS
    • READ_EXTERNAL_STORAGE
    • WRITE_EXTERNAL_STORAGE
    áp dụng chỉ cần xin quyền để nó có thể dùng trực tiếp tài nguyên, giả dụ trong công đoạn chạy mà áp dụng có dùng dữ liệu lấy trong khoảng 1 áp dụng khác thì chỉ có áp dụng khác mới cần xin quyền.

    Khai báo trong file AndroidManifest.xml
    Để khai báo quyền thì chúng ta dùng thẻ trong thẻ . Ví dụ:




    Ở đây chúng ta xin quyền được gửi tin SMS. Đây là cái quyền hiểm nguy.
    Bạn có quan đến học json , xem tại đây

    Xin quyền trong công đoạn chạy
    Đối có cái quyền hiểm nguy thì công đoạn xin quyền sẽ khác ở từng phiên bản hệ điều hành và từng phiên bản SDK. Ví dụ:

    • Nếu đồ vật chạy Android phiên bản 5.1 trở xuống và áp dụng dùng API 22 trở xuống thì các bạn sẽ phải tự tay cấp quyền trong công đoạn cài đặt áp dụng, giả dụ không cấp thì áp dụng sẽ không được cài đặt.
    • Nếu đồ vật chạy Android 6.0 trở lên và áp dụng dùng API 23 trở lên thì áp dụng sẽ được cài nhưng khi chạy thì áp dụng sẽ lần lượt xin từng quyền trong khoảng các bạn, các bạn có thể cấp quyền này, bỏ quyền kia và áp dụng sẽ vẫn chạy nhưng dừng có các quyền không được cấp.
    bắt đầu từ phiên bản Android 6.0 (API 23), các bạn có thể lấy lại quyền của áp dụng, thí dụ như chúng ta có 1 áp dụng cần dùng camera, và bữa nay các bạn đã cho phép quyền dùng camera thì không có nghĩa là ngày hôm sau áp dụng vẫn còn có quyền chậm tiến độ, bởi thế trước khi chạy chúng ta nên kiểm tra xem áp dụng của chúng ta có quyền hay không đã.

    Ví dụ
    Chúng ta viết 1 áp dụng cần có quyền đọc danh sách số điện thoại giao thông.
    MainActivity.java



    import android.Manifest;
    import android.content.pm.PackageManager;
    import android.app.Activity;
    import android.os.Bundle;
    import android.support.v4.app.ActivityCompat;
    import android.support.v4.content.ContextCompat;
    import android.widget.Toast;

    Trong file MainActivity.java chúng ta thực hành các công tác xin quyền đọc danh sách giao thông.

    1
    private static final int READ_CONTACTS_CODE = 1;
    Hằng số READ_CONTACTS_CODE là 1 hằng số do chúng ta tự định nghĩa, hằng số này có tác dụng giống như ID để phân biệt các lần xin quyền.


    if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS)
    != PackageManager.PERMISSION_GRANTED)
    Phương thức checkSelfPermission() của lớp android.support.v4.ContextCompat sẽ kiểm tra xem áp dụng đã được cấp quyền chậm tiến độ rồi hay chưa, lớp này được định nghĩa trong thư viện support v4. Chúng ta sẽ Đánh giá về các thư viện support này sau.

    ActivityCompat.requestPermissions(this,
    new String[]Manifest.permission.READ_CONTACTS,
    READ_CONTACTS_CODE);
    giả dụ quyền chưa được cấp thì chúng ta xin quyền bằng bí quyết gọi phương thức ActivityCompat.requestPermission(), phương thức này nhận vào đối tượng Activity bây giờ, danh sách các quyền trong 1 mảng String và ID mà chúng ta đã định nghĩa ở trên, kết quả trả về là PackageManager.PERMISSION_GRANTED giả dụ được bằng lòng, ngược lại là PackageManager.PERMISSION_DENIED.



    Phương thức requestPermission() sẽ hiển thị 1 hộp thoại xin cấp quyền cho các bạn, kết quả trả về sẽ được truyền vào lời gọi phương thức onRequestPermission(), phương thức này nhận ID của quyền được xin, danh sách các quyền trong mảng permissions và danh sách kết quả của từng quyền trong mảng grantResults.




    Ở đây chúng ta chỉ xin cấp 1 quyền là READ_CONTACTS, bởi thế các mảng trả về chỉ có 1 phần tử, chúng ta kiểm tra xem kết quả xin quyền READ_CONTACTS có thành công hay không bằng bí quyết so sánh có hằng số PERMISSION_GRANTED. giả dụ có thì hiện 1 câu thông báo thành công, ngược lại thì báo thất bại.

    giả dụ áp dụng đã từng bị chối từ cấp quyền bởi các bạn thì các lần xin quyền tiếp theo hộp thoại sẽ hiện 1 checkbox đề “Never ask again”, giả dụ các bạn check vào thì áp dụng sẽ không bao giờ có thể xin quyền được nữa.
     
    Cùng đọc NỘI QUY DIỄN ĐÀN và ý thức thực hiện cùng BQT xây dựng cộng đồng thêm vững mạnh bạn nhé
    ***** Xin đừng Spam vì một diễn đàn trong sạch *****
Địa chỉ thu mua do cu ho chi minh uy tín, Official Premium Account Reseller Premiumkeystore.com Easily, Instant delivery & Trusted.

Chia sẻ trang này