2016-10-10 15 views
0

APIレベル23では、Location ManagerをAndroidで使用して緯度と経度を取得しようとしています。GPSの許可を求めています。 許可を得た後、MainActivityには行かない。API 23で何の許可も得られていません。android

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.splash_screen_main); 

     if(Build.VERSION.SDK_INT >= 23){ 
      requestMultiplePermissions(); 
     } 


     final Thread splashScreenThread = new Thread() { 

    public void run() { 

     try { 
      Thread.sleep(2000); 

     } catch (InterruptedException exception) { 
      exception.printStackTrace(); 
     } finally { 
      Intent homeScreen = new Intent(SplashScreen.this, MainActivity.class); 

     } 
    } 
}; 

     splashScreenThread.start(); 
    } 

    //Marshmallow permission code 
    private void requestMultiplePermissions() { 
     String locationPermission = Manifest.permission.ACCESS_FINE_LOCATION; 
     int hasLocPermission = checkSelfPermission(locationPermission); 
     List<String> permissions = new ArrayList<String>(); 
     if (hasLocPermission != PackageManager.PERMISSION_GRANTED) { 
      permissions.add(locationPermission); 
     } 

     if (!permissions.isEmpty()) { 
      String[] params = permissions.toArray(new String[permissions.size()]); 
      requestPermissions(params, 1); 
     } else { 
      // We already have permission, so handle as normal 
     } 
    } 


    @Override 
    public void onRequestPermissionsResult (int requestCode, String[] permissions, 
              int[] grantResults){ 
     Toast.makeText(SplashScreen.this," "+grantResults,Toast.LENGTH_SHORT).show(); 
     switch (requestCode) { 
      case 1: 
       if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
        // Handle permission granted 
        Intent intent = new Intent(SplashScreen.this , MainActivity.class); 
        startActivity(intent); 

       } else { 
        // Handle permission denied 
        new AlertDialog.Builder(this) 
          .setMessage("The app cannot continue without permissions") 
          .setCancelable(false) 
          .setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
           public void onClick(DialogInterface dialog, int id) { 
            SplashScreen.this.finish(); 
           } 
          }) 
          .show(); 


       } 
       break; 
      default: 
       super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
     } 
     // 

    } 
} 

ヘルプは初めてです。 requestMultiplePermission内部のあなたの他の状態で

+0

メインフォルダに – Arjun

+0

をあなたのbuild.gradleファイルのコードをアップロードしてください、私の意図があるなぜあなたは、何が問題である私に言うことができます働いていない。 – Firdoesh

+0

https://hackernoon.com/10-good-rules-for-bad-app-part-1-technical-4ca18609b13c#.tmuvppy8x投稿番号1はあなたのためです –

答えて

0

、あなたの活動を開始します。

Intent intent = new Intent(SplashScreen.this , MainActivity.class); 
startActivity(intent); 
+0

これは動作しません – Firdoesh

+0

どの条件がトリガーされているかをチェックします。 –

関連する問題