2017-06-17 94 views
-1

授予權限後我獲得空白屏幕。授予權限後的空白屏幕

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     int PERMISSION_ALL = 1; 
     String[] PERMISSIONS = {Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.CAMERA}; 

     if(!hasPermissions(this, PERMISSIONS)){ 
      Log.d("permission","permission"); 
      ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL); 

     } 

} 



public static boolean hasPermissions(Context context, String... permissions) { 
     if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) { 
      for (String permission : permissions) { 
       if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) { 
        return false; 
       } 
      } 
     } 
     return true; 
    } 
    @Override 
    public void onRequestPermissionsResult(int requestCode, String[] permissions, 
              int[] grantResults) { 
Log.d("requestCode",String.valueOf(requestCode)); 
     switch (requestCode) { 
      case 1: { 
       if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED) { 
        //Do your work. 
        // finish(); 
        //startActivity(getIntent()); 
        Intent intent = new Intent(MainActivity.this, MainActivity.class); 
        startActivityForResult(intent, 0); 
       } else { 
        Toast.makeText(this, "Until you grant the permission, we cannot proceed further", Toast.LENGTH_SHORT).show(); 
       } 
       return; 
      } 
      default: 
       super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
     } 
    } 

我得到對話框詢問相機和位置的權限。讓我得到一個空白的屏幕和手機掛起後。

我得到「調試器不再有效」,沒有別的。我得到允許權限對話框,但我沒有得到權限標籤,也沒有調用我的OnRequestPermissionsResult()。

可以請別人幫我這個嗎?

+0

你的LogCat說什麼?我認爲你可以在檢查'hasPermissions()'後看到「permission」標籤,但是'requestCode'是否爲1? 你在ActivityMAin.java中檢查嗎?我假設因爲_setContentView(R.layout.activity_main)_。如果是這樣,爲什麼你想與MainActivity一起'startActivityForResult'? – thorin86

+0

我得到「調試器不再有效」,沒有別的。我得到允許權限對話框,但我沒有得到權限標籤,也沒有調用我的OnRequestPermissionsResult()。 – asifa

回答

0

我相信這是因爲你沒有真正運行任何UI代碼。舉例來說,我會改變你有什麼在onRequestPermissionsResult()方法授予權限後:

Intent intent = new Intent(MainActivity.this, MainActivity.class); 
        startActivityForResult(intent, 0); 

爲了要呈現的任何UI。