0

Jni を使用してシステムを編集する方法のサンプル コードが必要です。/sys/class/gpio/gpio41/value の場所にあるファイルを編集する必要があります

これらのコードを試しましたが、機能しません。

#include <jni.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <fcntl.h>



 jstring
       Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env,
                                              jobject thiz )
 {

int fd ;
    char gpio_path[30];
    sprintf(gpio_path,"/sys/class/gpio/gpio41/value");



    fd = open(gpio_path, O_RDWR | O_NONBLOCK );

        write(fd, "1", 2);


    close(fd);



return (*env)->NewStringUTF(env, gpio_path);

}

4

2 に答える 2

1

一般に、セキュリティ上の問題から、sysfs ファイルは android では書き込み可能ではありません。

システム、メディア、グラフィックスなどの適切な uid を持つ特定のアプリケーションを書き込み可能にすることができます。

https://android.googlesource.com/platform/cts/+/master/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.javaを参照し、testAllFilesInSysAreNotWritable() メソッドを見てください。

于 2013-02-13T06:16:05.020 に答える
1

ファイルへのアクセス許可の付与 コマンドの実行

chmod 777 /sys/クラス/gpio/gpio41/値

出来た................

于 2013-02-14T04:39:28.543 に答える