JavascriptProva

giovedì 16 agosto 2018

Esercitazione sui permessi a runtime senza riavviare l'App.

Codice che imposta i permessi a runtime senza necessità di riavviare l'applicazione.
Ho cancellato tutto e ora me lo ricostruisco.
public class MainActivity extends AppCompatActivity {

    Handler handler=new Handler();


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

        Runnable runnable =new Runnable() {
            @Override
            public void run() {
                if(Build.VERSION.SDK_INT >= 23 && Settings.canDrawOverlays(getApplicationContext())){
                    Intent i=new Intent(getApplicationContext(),MainActivity.class);
                    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                    startActivity(i);
                }else{
                    handler.postDelayed(this,1000);
                }
            }
        };
        if(Build.VERSION.SDK_INT >= 23 && !Settings.canDrawOverlays(getApplicationContext())){
            Intent intent=new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
                    Uri.parse("package:"+getPackageName()));
            startActivity(intent);
            handler.postDelayed(runnable,1000);
        }else{
            continua();
        }

    }

    private void continua(){
        System.out.println("STO CONTINUANDO");
    }

}
Funziona! L'ho scritto bene, a quanto pare!

Nessun commento:

Posta un commento