感觉像是没有root权限造成的。建议在vga_fb = open("/data/ball/2.txt", O_CREAT|O_RDWR);
这句下面直接打句log,看看有没有走完这句。

解决方案 »

  1. 可能是没走完open(),  如果是没有root权限,我是用APK包来安装的,该怎么使它有权限呢?
      

  2. apk是没有读取/data目录的权限的,除非apk是运行在root用户组内的
      

  3. 怎么让apk运行在root用户组呢?  chown吗? 直接进系统里面chown 这个apk文件?
      

  4. http://www.cublog.cn/u3/90973/showart_2304311.html
    你可以在android层获取root权限,然后将路径传到jni中去处理
      

  5. 今天再试了一下,void setVGAState(int state)
    {
        int vga_fb = 0;
        LOGD("****************************TVON*******************\n");
        vga_fb = open("/dev/graphics/fb1", O_RDWR);
        LOGD("****************************TVON1*******************\n");    if(vga_fb == -1)
        {
            LOGD("********************TV open fail**************\n");        return;
        }
        close(vga_fb);
    }
    打印出了LOGD("********************TV open fail**************\n");
    应该是设备文件打开错误.
    ls -l /dev/graphics/fb1 显示是 crw-rw---- root graphics
      

类似问题 »