2015-10-05 9 views
15

के लिए कस्टम टेक्स्ट प्रदान करें क्या सिस्टम संवाद के लिए एक कस्टम टेक्स्ट प्रदान करना संभव है जिसे उपयोगकर्ता को अनुमति देने के लिए कहा जाता है?एंड्रॉइड एम अनुमति संवाद

उत्तर

19

नहीं, आप संवाद के पाठ को कस्टमाइज़ नहीं कर सकते हैं, लेकिन आप अनुमति के अनुरोध से पहले स्पष्टीकरण प्रदान कर सकते हैं। developer.android.com से हवाला देते हुए:

अनुरोध अनुमतियां

अपने अनुप्रयोग एक खतरनाक अनुमति है कि एप्लिकेशन प्रकट में सूचीबद्ध किया गया की जरूरत है, यह अनुमति प्रदान करने के उपयोगकर्ता पूछना चाहिए। एंड्रॉइड अनुमति का अनुरोध करने के लिए आप कई विधियों का उपयोग कर सकते हैं। कॉलिंग ये विधियां मानक एंड्रॉइड डायलॉग लाती हैं, जिन्हें आप कस्टमाइज़ नहीं कर सकते हैं।

के बारे में बताएं क्यों की गई अनुमतियों को

कुछ परिस्थितियों में की जरूरत है, आप मदद करने के लिए उपयोगकर्ता क्यों आपका ऐप्लिकेशन किसी अनुमति की जरूरत है सकते हैं। उदाहरण के लिए, यदि कोई उपयोगकर्ता फ़ोटोग्राफ़ी ऐप लॉन्च करता है, तो उपयोगकर्ता शायद आश्चर्यचकित नहीं होगा कि ऐप कैमरे का उपयोग करने की अनुमति मांगता है, लेकिन उपयोगकर्ता नहीं समझ सकता है कि ऐप उपयोगकर्ता के स्थान तक पहुंच क्यों चाहता है या संपर्कों। अनुमति का अनुरोध करने से पहले, आपको पर उपयोगकर्ता को स्पष्टीकरण प्रदान करना चाहिए। ध्यान रखें कि आप नहीं चाहते हैं कि उपयोगकर्ता स्पष्टीकरण के साथ अभिभूत हो; यदि आप स्पष्टीकरण प्रदान करते हैं, तो उपयोगकर्ता ऐप को निराशाजनक और हटा सकता है।

एक दृष्टिकोण जिसका आप उपयोग कर सकते हैं केवल स्पष्टीकरण प्रदान करना है यदि उपयोगकर्ता ने पहले ही अनुमति अनुरोध को बंद कर दिया है। यदि कोई उपयोगकर्ता कार्यक्षमता का उपयोग करने की कोशिश कर रहा है जिसके लिए अनुमति की आवश्यकता है, लेकिन अनुमति अनुरोध को बंद कर देता है, जो शायद दिखाता है कि उपयोगकर्ता समझ में नहीं आता है कि ऐप को कार्यक्षमता प्रदान करने की अनुमति क्यों है। इस तरह की स्थिति में, शायद यह एक अच्छा विचार है एक स्पष्टीकरण दिखाएं।

ऐसी स्थितियों को ढूंढने में सहायता के लिए जहां उपयोगकर्ता को स्पष्टीकरण की आवश्यकता हो, एंड्रॉइड एक उपयोगिता विधि प्रदान करता है, shouldShowRequestPermissionRationale()। यह विधि सत्य लौटाती है अगर ऐप ने पहले इस अनुमति का अनुरोध किया है और उपयोगकर्ता ने अनुरोध से इनकार कर दिया है।

9

हम अनुमति का अनुरोध संवाद कस्टमाइज़ नहीं कर सकते, लेकिन हम उपयोगकर्ता एक कस्टम व्याख्या यह है कि क्यों हम नीचे अनुरोध कर रहे हैं कस्टम स्पष्टीकरण के साथ विधि है प्रदान कर सकते हैं

private void checkForCameraPermission() { 
    // Here, thisActivity is the current activity 
    if (ContextCompat.checkSelfPermission(this, 
      Manifest.permission.CAMERA) 
      != PackageManager.PERMISSION_GRANTED) { 
     if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA)) { 
      AlertDialog.Builder alertBuilder = new AlertDialog.Builder(this); 
      alertBuilder.setCancelable(true); 
      alertBuilder.setTitle("Camera permission necessary"); 
      alertBuilder.setMessage("FITsociety need camera permission to read barcode."); 
      alertBuilder.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        ActivityCompat.requestPermissions(BarCodeScannerActivity.this, 
          new String[]{Manifest.permission.CAMERA}, 
          MY_PERMISSIONS_REQUEST_CAMERA); 
       } 
      }); 

      AlertDialog alert = alertBuilder.create(); 
      alert.show(); 
     } else { 
      // No explanation needed, we can request the permission. 
      ActivityCompat.requestPermissions(this, 
        new String[]{Manifest.permission.CAMERA}, 
        MY_PERMISSIONS_REQUEST_CAMERA); 
      // MY_PERMISSIONS_REQUEST_CAMERA is an 
      // app-defined int constant. The callback method gets the 
      // result of the request. 
     } 
    } else { 
     setBarCodeScannerView(); 
    } 
} 

उपरोक्त विधि जाँच करें कि क्या अनुमति पहले से ही नहीं तो प्रदान किया जाता है तो यह जाँच लें कि कस्टम स्पष्टीकरण इस विधि

ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA) 

साथ की आवश्यकता है इस विधि के लिए प्रलेखन यहाँ है shouldShowRequestPermissionRationale() इस विधि वापसी सच ही यदि उपयोगकर्ता अनुमति संवाद से इनकार करता है या उपयोगकर्ता ने एप्लिकेशन की सेटिंग से अनुमति बंद कर दी है तो उपयोगकर्ता ने ऐसा किया है तो कस्टम स्पष्टीकरण के साथ अलर्ट संवाद दिखाएं और आगे बढ़ें उम्मीद है कि यह

काम करता है
संबंधित मुद्दे