【发布时间】:2016-12-03 03:19:41
【问题描述】:
您好,我的应用程序从 API 18 到 API 22 都可以正常工作。 对于新的 Android API 23,我正在尝试设置我在 Manifest 上设置的检查权限。我正在使用 Dexter 库。现在我希望启用权限的对话框设置显示在我的初始屏幕之前,当我在对话框权限上单击“确定”时,应用程序保持打开并显示我的介绍视图和主视图之后。 我已经设置了在启动屏幕运行期间工作的代码,当我为启用权限设置确定时,应用程序关闭而不是保持打开状态。 这是我的启动画面和 dexter 库代码:
public class SplashScreen extends Activity {
//Set waktu lama splashscreen
private static int splashInterval = 3000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Fabric.with(this, new Answers());
Dexter.initialize(getApplicationContext());
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.splash_fragment);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
View v = findViewById(android.R.id.content);
if (ActivityCompat.checkSelfPermission(getApplicationContext(),
android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager
.PERMISSION_GRANTED && ActivityCompat
.checkSelfPermission(getApplicationContext(),
android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager
.PERMISSION_GRANTED) {
MultiplePermissionsListener snackbarMultiplePermissionsListener =
SnackbarOnAnyDeniedMultiplePermissionsListener.Builder
.with((ViewGroup) v.getRootView(),"")
.withOpenSettingsButton("Settings")
.withCallback(new Snackbar.Callback() {
@Override
public void onShown(Snackbar snackbar) {
// Event handler for when the given Snackbar has been dismissed
}
@Override
public void onDismissed(Snackbar snackbar, int event) {
// Event handler for when the given Snackbar is visible
}
})
.build();
Dexter.checkPermissions(snackbarMultiplePermissionsListener, android.Manifest.permission.ACCESS_FINE_LOCATION, android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_NETWORK_STATE, android.Manifest.permission.GET_ACCOUNTS);
return;
}
Intent i = new Intent(SplashScreen.this, MainActivity.class);
startActivity(i);
//jeda selesai Splashscreen
this.finish();
}
private void finish() {
// TODO Auto-generated method stub
}
}, splashInterval);
};
}
如何在启动屏幕之前显示此对话框设置并在单击确定以启用权限后保持应用打开?
谢谢
【问题讨论】:
-
你有什么解决办法吗?如果是,请发布
标签: permissions splash-screen android-6.0-marshmallow