Android数据库权限! 30

我使用SQLite数据库记录用户信息模拟器上没问题但是真机上就闪退查看真机的文件没有创建DB文件肯定不是页面转换问题我注释数据库访问真机就可以运行我添加下面代码还不不行虽... 我使用SQLite数据库记录用户信息 模拟器上没问题 但是真机上就闪退 查看真机的文件没有创建DB文件 肯定不是页面转换问题 我注释数据库访问 真机就可以运行 我添加下面代码 还不不行 虽然安装提示权限有访问删除修改SD卡
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
展开
 我来答
小三的歌love
推荐于2016-05-27 · TA获得超过326个赞
知道小有建树答主
回答量:1259
采纳率:0%
帮助的人:435万
展开全部
数据库支持,无论生命线的大小每一个应用程序,除非你的应用程序只能处理简单的数据,你需要一个数据库系统来存储你的结构化数据,使用SQLite数据库,这是一个开源的Android,支持多操作系统的SQL数据库广泛应用于许多领域,如Mozilla Firefox是使用SQLite的存储配置数据,iPhone还使用SQLite来存储数据。
在Android中,您创建一个应用程序的数据库,只有它可以访问,其他应用程序无法访问位于Android设备/数据/数据/ /数据库文件夹中的数据库,在这篇文章中,您将学习如何创建和使用在Android的数据库。
SQLite数据库
使用Eclipse创建一个Android项目,命名数据库,如图1:
中国1数据库 - 使用Eclipse创建新项目的Android
创建最佳实践DBAdapter数据库的辅助类
操作是创建一个辅助类,它封装了访问数据库的所有复杂性,调用代码来讲它是透明的,所以我创建了一个帮手DBAdapter类,创建,打开,关闭和使用SQLite数据库它。
首先,在src /文件夹(在本实施例中的src / net.learn2develop.Database)下一个DBAdapter.java文件中的溶液。
在DBAdapter.java文件要使用导入所有的命名空间:
- 软件包net.learn2develop.Databases;
中国进口android.content.ContentValues;
进口android.content.Context;
进口android.database.Cursor;
进口android.database.SQLException;
进口android.database.sqlite.SQLiteDatabase;
进口android.database.sqlite .SQLiteOpenHelper;
进口android.util.Log;
公共类DBAdapter
{}

中国接下来,创建一个数据库,名为bookstitles,如图所示领域。
中国2数据库字段酒店在DBAdapter.java文件,如清单1
文件清单1中定义的常量定义DBAdapter.java不断

包net.learn2develop.Database;

进口android.content.ContentValues;
进口android.content。语境;
进口android.database.Cursor;
进口android.database.SQLException;
进口android.database.sqlite.SQLiteDatabase;
进口android.database.sqlite.SQLiteOpenHelper;
进口android.util.Log;
公共类DBAdapter
{
公共静态最后弦乐KEY_ROWID = _id;
公共静态最后弦乐KEY_ISBN = ISBN;
公共静态最后弦乐KEY_TITLE =称号;
公共静态最后弦乐KEY_PUBLISHER =发行;
私有静态最后字符串变量= DBAdapter;
私有静态最后弦乐DATABASE_NAME =书籍;
私有静态最后弦乐DATABASE_TABLE =职称;
私有静态最终诠释DATABASE_VERSION = 1;
私有静态最后弦乐DATABASE_CREATE =
创建表的标题(_id整数主键自动增量,
+ ISBN文本不为空,标题文本不为空,
+出版商文字NOT NULL); ;
私人最终上下文语境;
}

DATABASE_CREATE常数包括标题表创建SQL语句。
在DBAdapter类,你可以扩展SQLiteOpenHelper类,这是一款Android辅助类,主要用于创建数据库和版本管理。事实上,你可以覆盖的onCreate()和onUpgrade()方法,如清单2所示清单2.
DBAdapter类,涵盖了SQLiteOpenHelper的onCreate()和onUpgrade()方法登录到到网扩展类 - 软件包net.learn2develop.Database;
中国进口的Android。 content.ContentValues;
进口android.content.Context;
进口android.database.Cursor;
进口android.database.SQLException;
进口android.database.sqlite.SQLiteDatabase;
进口android.database.sqlite.SQLiteOpenHelper;
进口android.util.Log;
公共类DBAdapter
{
公共静态最后弦乐KEY_ROWID = _id;
公共静态最后弦乐KEY_ISBN = ISBN;
公共静态最后弦乐KEY_TITLE =称号;
公共静态最后弦乐KEY_PUBLISHER =发行;
私有静态最后字符串变量= DBAdapter;
私有静态最后弦乐DATABASE_NAME =书籍;
私有静态最后弦乐DATABASE_TABLE =职称;
私有静态最终诠释DATABASE_VERSION = 1;
私有静态最后弦乐DATABASE_CREATE =
创建表的标题(_id整数主键自动增量,
+ ISBN文本不为空,标题文本不为空,
+出版商文字NOT NULL);;
私人最终上下文语境;
私人DatabaseHelper DBHelper;
私人SQLiteDatabase分贝;
公共DBAdapter(上下文CTX){

this.context = CTX;
DBHelper =新DatabaseHelper(上下文);
}
私有静态类DatabaseHelper扩展SQLiteOpenHelper
{
DatabaseHelper(上下文环境){

超(背景下,DATABASE_NAME,空,DATABASE_VERSION);
}
覆盖
公共无效的onCreate(SQLiteDatabase DB){

db.execSQL(DATABASE_CREATE);
}
覆盖
公共无效onUpgrade(SQLiteDatabase分贝,INT oldVersion,
INT NEWVERSION){

Log.w(TAG,从版本升级数据库?+ oldVersion
?+到
+ NEWVERSION +,这将销毁所有旧的数据);
db.execSQL(“DROP TABLE IF EXISTS标题”);
的onCreate(DB);
}}

}

的onCreate()方法创建一个新的数据库,onUpgrade()方法用于升级数据库,它可以通过检查DATABASE_VERSION常数值来定义?实现,为onUpgrade()方法,只是简单地删除表,然后只创建一个表。
追问
大哥 我的数据库类没问题 在真机上就是创建不了DB文件 我虚拟机跑是没问题的 肯定是手机权限问题
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式