2017-08-09 2 views
0

Je rencontre un problème avec les autorisations .. Comment puis-je mettre à jour onCreate ou quelque chose, après que l'utilisateur autorise mon application pour la demande d'autorisations?Android: Comment demander d'abord 2 autorisations avant onCreate?

par exemple:

 @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_permissions); 

     // checking if it's not allowed yet 

     if(!hasPermissions(this, PERMISSIONS)){ 
      ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL); 
     } 


     // now here how can i do something or start New Activity after he allows all permissions? 



} 

si je fais:

else { 

} 

ne va pas travailler pour moi, si je redémarre mon application

+0

Vous n'obtiendrez le résultat de 'requestPermissions()' 'avant finitions onCreate()'. Faites simplement ce que vous voulez dans 'onRequestPermissionsResult()', après avoir déterminé si l'autorisation est accordée. –

+0

un exemple pour ce que vous voulez dire? –

+0

Voir votre commentaire '// maintenant ici comment puis-je faire quelque chose ou commencer une nouvelle activité ...'? Ne faites pas le "quelque chose ou commencer une nouvelle activité" là. Faites-le dans 'onRequestPermissionsResult()' à la place. Regardez [l'exemple sur la page de développeur] (https://developer.android.com/training/permissions/requesting.html#handle-response). Vous le feriez où la permission '// a été accordée, yay! ... 'le commentaire est. –

Répondre

0

Vous devez utiliser libs https://github.com/hotchemi/PermissionsDispatcher

Exemple:

@RuntimePermissions 
public class AppTopView1Activity extends AppCompatActivity{ 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_app_top_view_1); 
    AppTopView1ActivityPermissionsDispatcher.checkPermissionWithCheck(this); 
    } 
} 

@NeedsPermission({Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA}) 
void checkPermission(){ 
    // allow Permission : Code here 
} 

@OnPermissionDenied({Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA}) 
void showDeniedForCamera() { 
    // don't allow Permission : Code here 
} 

@Override 
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { 
    super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
    AppTopView1ActivityPermissionsDispatcher.onRequestPermissionsResult(this, requestCode, grantResults); 
} 
+0

merci beaucoup homme! bonne journée :) –