最近有一个需求,需要从native层获取android4.0的一些设置参数(鼠标指针速度),从网上找了下资料,结合自己摸索,得出方法如下;
static int _sql_callback(void* notused,int arg,char** argv,char** szColName)
{
int ret;
char buf[128];
for(int i=0;i<argc;i++)
{
if(string(szColName[i])==string("value"))
{
ret=atoi(argv[i]);
} else
ret=-1;
g_pointerspeed1=ret;
}
}
bool GetPointerSpeed(int& value)
{
const char* sql="select * from system where name='pointer_speed';";
sqlite3 *db=0;
char* pErrMsg=0;
int ret=0;
const char* dbname="/data/data/com.android.providers.settings/databases/settings/db";
ret=sqlite3_open(dbname,&db);
if(ret!=SQLITE_OK)
return false;
sqlite3_exec(db,sql,_aql_callback,0,&pErrMsg);
sqlite3_close(db);
value=g_pointerspeed1;
}
当然这个操作需要root权限,因为我们的程序具备这个权限的,所以没有这个问题