2015-10-05 8 views

cevap

19

Hayır, diyalog metni özelleştirmek değil, ancak isteği önce izin bir açıklama sağlayabilir. developer.android.com alıntı:

talep İzinleri

Uygulamanız uygulama manifest'te yer aldı tehlikeli izni gerekiyorsa, bu izni vermek için kullanıcı sormak gerekir. Android , bir izin istemek için kullanabileceğiniz çeşitli yöntemler sunar. bu yöntemleri çağrılması bir standart Android iletişim, yapamazsın özelleştirme getirir. uygulama izinlerini Bazı durumlarda

neden ihtiyaç

açıklar, sen uygulama izni ihtiyacı neden kullanıcı anlamalarına yardımcı olmak isteyebilirsiniz. Örneğin, bir kullanıcı bir fotoğraf uygulamasını başlatırsa, kullanıcı muhtemelen uygulamanın uygulamasının kamerayı kullanma iznini istemesine şaşırmayacaktır, ancak kullanıcı uygulamanın neden kullanıcının erişimine erişmek istediğini veya nedenini anlayamayabilir kişileri. Bir izin isteğinde bulunmadan önce, kullanıcıya bir açıklama sağlayan 'u düşünmelisiniz. Kullanıcının açıklamalarla boğulması için 'un istemediğini unutmayın; Çok fazla açıklamalar sağlarsanız, kullanıcı sinir bozucu uygulama bulmak ve kaldırmak olabilir. Eğer kullanabilir

Bir yaklaşım kullanıcı zaten o izin talebini geri çevirdi yalnızca bir açıklama sunmaktır. Bir kullanıcı, bir izin gerektiren işlevselliği kullanmaya çalışır, ancak izin isteğini geri çeviren tutuyorsa, muhtemelen kullanıcının uygulamasının neden bu işlevini sağlamak için izne ihtiyacı olduğunu anlamadığını gösterir. Böyle bir durumda, bir açıklama göstermek için muhtemelen iyi bir fikirdir.

kullanıcı bir açıklama gerekebilir durumları kolay bulmak için, Android bir utiltity yöntemi, shouldShowRequestPermissionRationale() sağlar. uygulaması daha önce bu izni talep edilen ve kullanıcı isteği reddetti, bu yöntem true döndürür.

9

Biz izin istemesini iletişim özelleştiremezseniz ama biz kullanıcıya neden biz aşağıda talebinde özel açıklama ile yöntemi olduğunu özel açıklama sağlayabilir

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(); 
    } 
} 

yukarıdaki yöntem değilse izni zaten verilmiş olup olmadığını kontrol özel açıklama bu yöntemle

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

ile gerekiyorsa o zaman bu yöntem için dokümantasyon burada gerçek bu yöntem dönüş shouldShowRequestPermissionRationale() olduğunu kontrol sadece Kullanıcı izin iletişim kutusuna inkar veya kullanıcı özel bir açıklama ile uyarı iletişim göstermek ve daha sonra devam umuyorsa kullanıcı ayarını uygulamadan izin kapatın kapatın

İlgili konular