Tenho dois sistemas e suas classes de abertura/apresentação sao iguais, mas um dos apps esta dando problema somente nos androids 10 (API 29).Segue minha classe que esta dando o erro:
package br.com.premiumwebrep.UI;
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.StrictMode;
import android.support.v4.app.ActivityCompat;
import br.com.premiumwebrep.DAO.BaseRepDAO;
@SuppressLint("NewApi")
public class Apresentacao extends Activity implements Runnable {
SQLiteDatabase db;
BaseRepDAO dao;
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
int SDK_INT = android.os.Build.VERSION.SDK_INT;
while(checkDiskPermission() != true) {
checkDiskPermission();
}
if (SDK_INT > 8)
{
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
super.onCreate(savedInstanceState);
setContentView(R.layout.apresentacao);
Handler handler = new Handler();
handler.postDelayed(this,2000);
if(checkDiskPermission() == true) {
dao = new BaseRepDAO(this);
dao.getReadableDatabase();
dao.close();
}
}else {
super.onCreate(savedInstanceState);
setContentView(R.layout.apresentacao);
Handler handler = new Handler();
handler.postDelayed(this, 2000);
if(checkDiskPermission() == true) {
dao = new BaseRepDAO(this);
dao.getReadableDatabase();
dao.close();
}
}
}
private boolean checkDiskPermission ()
{
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
return false;
}
return true;
}
public void run() {
dao = new BaseRepDAO(this);
dao.getReadableDatabase();
dao.close();
BaseRepDAO.criaCampos();
db = SQLiteDatabase.openDatabase(Environment.getExternalStorageDirectory() + "/PremiumRepWeb/"
+ "PREMIUMWEBREP.DB", null, SQLiteDatabase.OPEN_READONLY);
Cursor cursor = db.rawQuery("select * from empresa", null);
int registros = cursor.getCount();
if(registros != 0){
startActivity(new Intent(this, LoginUsuario.class));
finish();
}else{
startActivity(new Intent(this, LoginEmpresa.class));
finish();
}
cursor.close();
db.close();
}
}
Debuguei e o erro gera quando passa nesta linha (dao.getReadableDatabase();), o erro gerado é: unknown error (code 1294 SQLITE_CANTOPEN_ENOENT[1294]): Could not open database
Alguem tem ideia do que possa ser? Estou a semanas procurando e não acho nada sobre.