Android: проблема с заставкой после запроса разрешения на хранение - PullRequest
0 голосов
/ 29 августа 2018

Я использую плагин для заставки Cordova в своем проекте Заставка не работает, когда я использую этот код для разрешения хранения запроса:

    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
    {
        requestPermissions(new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
        requestPermissions(new String[] {Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
    }

когда я удаляю этот код, заставка снова работает!

это моя основная активность:

public class MainActivity extends CordovaActivity
{

boolean doubleBackToExitPressedOnce = false;
int res = 404; 
int code;
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    Bundle extras = getIntent().getExtras();
    if (extras != null && extras.getBoolean("cdvStartInBackground", false)) {
        moveTaskToBack(true);
    }
....
....
....
    UiChangeListener();
    requestPermission();
}

public void UiChangeListener()
{
    final View decorView = getWindow().getDecorView();
    decorView.setOnSystemUiVisibilityChangeListener (new View.OnSystemUiVisibilityChangeListener() {
        @Override
        public void onSystemUiVisibilityChange(int visibility) {
            if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
                decorView.setSystemUiVisibility(
                        View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                                | View.SYSTEM_UI_FLAG_FULLSCREEN
                                | View.SYSTEM_UI_FLAG_IMMERSIVE);
            }
        }
    });

}
private void requestPermission() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
        requestPermissions(new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
    } }

}

}

что не так?

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Вы можете добавить вышеуказанные разрешения в AndroidManifest File и для создания заставки просто напишите класс, как показано ниже, и используйте намерение

public class entercsreen extends Activity {

private final int SPLASH_DISPLAY_LENGTH = 1500;


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

    new Handler().postDelayed(new Runnable(){
        @Override
        public void run() {
            /* Create an Intent that will start the Menu-Activity. */
            Intent mainIntent = new Intent(entercsreen.this,MainActivity.class);
            entercsreen.this.startActivity(mainIntent);
            entercsreen.this.finish();
        }
    }, SPLASH_DISPLAY_LENGTH);





}

}

0 голосов
/ 29 августа 2018

Вместо этого:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
{
    requestPermissions(new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
    requestPermissions(new String[] {Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
}

напишите это:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
{
    requestPermissions(new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
}

Вам не нужно запрашивать разрешение 2 раза для 2 разных разрешений. Вы можете объединить столько разрешений в одном запросе.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...