android - 从 Android 应用程序访问 i.mx6 板上的 I2C

标签 android linux i2c su nxp-microcontroller

我正在开发基于 nxp i.mx6 (Variscite Dart mx6) 的开发板。

我的应用程序使用平台 key 签名,我可以看到它作为 sharedUserId (UID 1000) 运行。

当我尝试使用 getRuntime.exec("/system/xbin/su") 执行“su”命令时,出现异常错误(权限被拒绝)。

我需要 su 才能使用 Shell 命令 i2cset 和 i2cset。

我使用的是 Android Oreo 8.0。

有什么建议吗?

最佳答案

我解决了创建一个在启动时启动的简单守护进程的问题,该守护进程接收由 Java 应用程序执行的命令(通过套接字)。

下面我报告守护程序代码(现在很简单,但它有效)。

卢卡

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>



int main() {
    char buffer[100];
    struct sockaddr_in addr;
    size_t addrlen, n;
    int sockfd = socket(AF_INET, SOCK_DGRAM, 0);
    memset(&addr, 0, sizeof addr); 
    addr.sin_family = AF_INET;
    addr.sin_port = htons(2000);
    addr.sin_addr.s_addr = INADDR_ANY;
    bind(sockfd, (struct sockaddr*)&addr, sizeof(addr));
    addrlen = sizeof(addr);
    while(1)
    {
        n = recvfrom(sockfd, (void*)buffer, 100, 0,
        (struct sockaddr*)&addr, (int *) &addrlen);
        buffer[n] = '\n';
        system(buffer);
    }
    return 0;
}

关于android - 从 Android 应用程序访问 i.mx6 板上的 I2C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56912247/

相关文章:

linux - nasm,86_64,linux ,"hello world"程序。当链接时,它说 "relocation truncated to fit"

c++ - 链接项目符号包含目录与cmake

python - 除了文档之外,是否有 python-periphery 库 i2c 代码示例或详细说明?

linux - 如何在 MIPS 板的 u 启动代码中添加对 bit-banging i2c 总线的支持

java - 如何将 Unity 集成到 Android Activity 中

android - react 原生 :app:installDebug FAILED

node.js - 如何持续运行javascript.js服务并监控其进程?

通过 UART 进行 iPad 配件通信

java - 合并多个 RealmList 并对结果列表进行排序?

Android 12 启动画面图标不显示