Sobes.tech
Middle

Ի՞նչ է Android-ում սովորական և վտանգավոր թույլտվությունների տարբերությունը։

sobes.tech AI

Պատասխան AI-ից

Android-ում թույլտվությունները բաժանվում են երկու կատեգորիաների՝ սովորական (normal) և վտանգավոր (dangerous):

  • Սովորական թույլտվությունները ավտոմատ տրամադրվում են ծրագրի տեղադրման ժամանակ, առանց օգտագործողի հստակ համաձայնության պահանջելու: Դրանք չեն ներկայացնում զգալի ռիսկ անձնական տվյալների կամ այլ ծրագրերի աշխատանքի համար: Օրինակներ՝ ինտերնետին հասանելիություն, ցանցի վիճակի հասանելիություն, զնգոցային հնարավորություն:

  • Վտանգավոր թույլտվությունները կարող են վտանգել օգտատիրոջ գաղտնիությունը կամ սարքի նորմալ աշխատանքը: Դրանք պետք է հստակ հաստատվեն օգտատիրոջ կողմից ծրագրի գործարկման ժամանակ: Օրինակներ՝ կոնտակտների հասանելիություն, գտնվելու վայրի հասանելիություն, տեսախցիկի հասանելիություն:

Տարբերություններ՝

Գծագիր Սովորական թույլտվություններ Վտանգավոր թույլտվություններ
Հանձնում Ավտոմատ տեղադրման ժամանակ Հարցում է գործարկման ժամանակ
Օգտատիրոջ համաձայնություն Պահանջվում չէ Պահանջվում է հստակ հաստատում
Ռիսկի մակարդակ Նվազագույն Բարձր
Գաղտնիության ազդեցություն Մինիմալ Բարձր
API մակարդակ Հիմնականում հասանելի է API 23+ Պահանջում է Android 6.0+ մշակում

Երբ աշխատում եք վտանգավոր թույլտվությունների հետ Flutter-ում, օգտագործվում է permission_handler փաթեթը թույլտվությունների ստուգման և հարցման համար:

  import 'package:permission_handler/permission_handler.dart';

  // Տեսախցիկի թույլտվության ստուգում
  Future<void> checkCameraPermission() async {
    var status = await Permission.camera.status;
    if (status.isGranted) {
      // Թույլտվությունը տրամադրված է
    } else if (status.isDenied) {
      // Թույլտվությունը մերժված է
      // Կարող եք կրկին խնդրել
      await requestCameraPermission();
    } else if (status.isPermanentlyDenied) {
      // Թույլտվությունը մշտապես մերժված է, անհրաժեշտ է օգտատիրողին ուղղել կարգավորումների
      openAppSettings();
    }
  }

  // Թույլտվության հարցում
  Future<void> requestCameraPermission() async {
    var status = await Permission.camera.request();
    if (status.isGranted) {
      // Թույլտվությունը տրամադրված է
    } else {
      // Թույլտվությունը մերժված է
    }
  }