解决方案 »

  1.   


    我在external目录下建了一个目录canjni,把canutil的源代码移植进入了,自己写了一个android.mk和application.mk,编译成功了一个so文件,并放在system/lib目录下。权限应该没有问题吧。怎么看这个权限问题呢?
      

  2.   


    我写的是JNI库,是so文件;不是驱动的ko文件;socketcan的驱动已经TI自带了。请问JNI库里面的代码去使用网络驱动,没有问题吧?
      

  3.   


    我写的是JNI库,是so文件;不是驱动的ko文件;socketcan的驱动已经TI自带了。请问JNI库里面的代码去使用网络驱动,没有问题吧?不太明白,你现是jni调用结果和adb shell里面不一样是吗?
    那jni的返回结果是对还是错?
      

  4.   


    我写的是JNI库,是so文件;不是驱动的ko文件;socketcan的驱动已经TI自带了。请问JNI库里面的代码去使用网络驱动,没有问题吧?不太明白,你现是jni调用结果和adb shell里面不一样是吗?
    那jni的返回结果是对还是错?是的。结果不一样。
    adb shell里面运行的canconfig结果正确;
    我将canconfig改造为一个jni库给java程序调用,同一个if_nametoindex函数运行结果不一样。
      

  5.   

    我现在跟踪下来发现在JNI中if_nametoindex函数运行结果不正确的原因是:jni层调用socket(AF_INET, SOCK_DGRAM, 0)失败不知道大家有什么建议?为什么 “jni层调用socket(AF_INET, SOCK_DGRAM, 0)失败” ???????
      

  6.   

    jni使用socket,可能还有权限的问题,你把你的程序获取system后,在su 获取root,权限试试结果。我也正在尝试
      

  7.   

    楼主现在找到android下怎么用socketCAN的方法没有啊?我最近也想这样弄。
      

  8.   

    楼主弄好了么?求大虾们帮助啊,我的比较简单,用qt写个界面就行了实现socketCAN通信,Linux下的C就行,本人新手,一头雾水,有相关的资料么?谢谢qq980713898
      

  9.   

    楼主,你好
    请问,关于adb操作,用canconfig来设置bitrate时,总是报open /sys/class/net/can0/can_bitrate失败。。是root权限,也chmod 了/sys/class/net/can0/的读写权限,还是报错,求分析!谢谢
      

  10.   

    socket-can在初始化socket的时候不是socket(PF_CAN, ...)么,而不是socket(AF_INET, SOCK_DGRAM, 0)吧??