2017-06-17 5 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コードを実行していないからだと思います。あなたがレンダリングしたい任意のUIに

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

:例えば、私はonRequestPermissionsResult()メソッドでアクセス権を付与した後、あなたが持っているものに変更したいです。

関連する問題