package com.hsjdow.gancm;/n/nimport android.Manifest;/nimport android.content.DialogInterface;/nimport android.content.pm.PackageManager;/nimport android.os.Build;/nimport android.os.Bundle;/nimport android.view.View;/nimport android.view.Menu;/n/nimport com.google.android.material.snackbar.Snackbar;/nimport com.google.android.material.navigation.NavigationView;/n/nimport androidx.annotation.NonNull;/nimport androidx.appcompat.app.AlertDialog;/nimport androidx.core.app.ActivityCompat;/nimport androidx.core.content.ContextCompat;/nimport androidx.navigation.NavController;/nimport androidx.navigation.Navigation;/nimport androidx.navigation.ui.AppBarConfiguration;/nimport androidx.navigation.ui.NavigationUI;/nimport androidx.drawerlayout.widget.DrawerLayout;/nimport androidx.appcompat.app.AppCompatActivity;/nimport android.widget.EditText;/n/nimport com.hsjdow.gancm.databinding.ActivityMainBinding;/nimport com.hsjdow.gancm.ui.home.HomeFragment;/nimport android.app.DatePickerDialog;/n/npublic class MainActivity extends AppCompatActivity {/n/n private AppBarConfiguration mAppBarConfiguration;/n private ActivityMainBinding binding;/n/n private static final int STORAGE_PERMISSION_CODE = 1;/n/n @Override/n protected void onCreate(Bundle savedInstanceState) {/n super.onCreate(savedInstanceState);/n/n binding = ActivityMainBinding.inflate(getLayoutInflater());/n setContentView(binding.getRoot());/n/n setSupportActionBar(binding.appBarMain.toolbar);/n binding.appBarMain.fab.setOnClickListener(new View.OnClickListener() {/n @Override/n public void onClick(View view) {/n Snackbar.make(view, '不知加什么.ing', Snackbar.LENGTH_LONG)/n .setAction('Action', null).show();/n }/n });/n/n DrawerLayout drawer = binding.drawerLayout;/n NavigationView navigationView = binding.navView;/n/n // Passing each menu ID as a set of Ids because each/n // menu should be considered as top level destinations./n mAppBarConfiguration = new AppBarConfiguration.Builder(/n R.id.nav_home, R.id.nav_gallery, R.id.nav_slideshow)/n .setOpenableLayout(drawer)/n .build();/n/n NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_content_main);/n NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration);/n NavigationUI.setupWithNavController(navigationView, navController);/n/n requestStoragePermission();/n }/n/n @Override/n public boolean onCreateOptionsMenu(Menu menu) {/n // Inflate the menu; this adds items to the action bar if it is present./n getMenuInflater().inflate(R.menu.main, menu);/n return true;/n }/n/n @Override/n public boolean onSupportNavigateUp() {/n NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_content_main);/n return NavigationUI.navigateUp(navController, mAppBarConfiguration)/n || super.onSupportNavigateUp();/n }/n/n public void dow_imgone(View view) {/n EditText editText = findViewById(R.id.edit_text);/n String inputText = editText.getText().toString();/n Snackbar.make(view, '输入框内容: ' + inputText, Snackbar.LENGTH_LONG)/n .setAction('Action', null).show();/n }/n/n private void requestStoragePermission() {/n if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {/n if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {/n if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {/n new AlertDialog.Builder(this)/n .setTitle('Permission needed')/n .setMessage('This permission is needed for storing files.')/n .setPositiveButton('OK', new DialogInterface.OnClickListener() {/n @Override/n public void onClick(DialogInterface dialog, int which) {/n ActivityCompat.requestPermissions(MainActivity.this,/n new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, STORAGE_PERMISSION_CODE);/n }/n })/n .setNegativeButton('Cancel', new DialogInterface.OnClickListener() {/n @Override/n public void onClick(DialogInterface dialog, int which) {/n dialog.dismiss();/n }/n })/n .create().show();/n } else {/n ActivityCompat.requestPermissions(this,/n new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, STORAGE_PERMISSION_CODE);/n }/n }/n }/n }/n/n @Override/n public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {/n super.onRequestPermissionsResult(requestCode, permissions, grantResults);/n/n if (requestCode == STORAGE_PERMISSION_CODE) {/n if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {/n Snackbar.make(binding.getRoot(), 'Storage Permission Granted', Snackbar.LENGTH_LONG).show();/n } else {/n Snackbar.make(binding.getRoot(), 'Storage Permission Denied', Snackbar.LENGTH_LONG).show();/n }/n }/n }/

Android 存储权限申请与效验示例:MainActivity 代码详解

原文地址: https://www.cveoy.top/t/topic/iEUa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录