我试图获取一个弹出窗口,请求用户在启动过程中授予访问外部存储的权限。我有一个名为“启动”的活动,这是我的启动器活动。通过此活动,我声明了一些全局变量并创建了一些目录(如果不存在)。为此,我需要对外部存储的权限。我已将代码实现为在developer.android.com上共享的,但未授予我所需的权限。
我认为这是行不通的,因为由于还没有显示layout.activity_wait,因此没有显示请求用户输入的弹出窗口,因此我应该将代码分发到AsyncTask中,以便在调用requestPermissions之前可以看到layout.activity_wait。
下面的代码没有AsyncTask(是的,我知道App也应该能够在没有权限的情况下工作的事实,我将在以后的阶段进行构建:))。请让我知道您对此有何看法。谢谢!
public class Start extends AppCompatActivity {
/**
set a bunch of variables to be used in all activities
**/
public static ...
public static ... ...
public static int MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE = 0;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wait);
checkPermission();
/**
do some stuff at startup, like creating some directories if not already present
**/
launchIntent(this, Home.class); //launch the home screen after initializing all variables and creating directories
finish();
}
private void checkPermission() {
if (ContextCompat.checkSelfPermission(Start.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
Log.d("permission", "NOT granted");
ActivityCompat.requestPermissions(Start.this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE);
}else{
Log.d("permission", "granted");
}
}
}
答案 0 :(得分:0)
感谢@Mike M.设法使其正常运行。我不了解onRequestPermissionsResult()的目的。现在我知道了。请参阅下面的代码。
jdbc:ucanaccess://C:\bsc_uob\Indicadores_UOB_cliente.mdb;SystemDB=C:\bsc_uob\Seguridad.mdw