2017-08-09 45 views
0

我遇到權限問題.. 如何在用戶允許我的應用程序進行權限請求後更新onCreate或其他內容?Android:如何在onCreate之前首先詢問2個權限?

例如:

 @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? 



} 

如果我這樣做:

else { 

} 

是不會爲我工作,除非我重新啓動我的應用程序

+0

你不會得到來自'requestPermissions()''之前的onCreate()'完成的結果。在確定權限是否被授予後,只需在'onRequestPermissionsResult()'中做任何你需要的操作。 –

+0

你是什麼意思? –

+0

查看你的評論'//現在,我在這裏如何做一些事情或開始新的活動......'?不要在那裏做「某件事或開始新的活動」。改用'onRequestPermissionsResult()'來代替。看[開發者頁面上的例子](https://developer.android.com/training/permissions/requesting.html#handle-response)。你會這樣做//授予許可,耶! ......評論是。 –

回答

0

您應該使用libs https://github.com/hotchemi/PermissionsDispatcher

例子:

@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

非常感謝很多人!祝你今天愉快 : ) –

相關問題