2017-06-12 10 views
0

AndroidでNDK JNIを使​​用してWifi RSSIレベルを取得する方法を示す例がありますか? JavaコードとJNIのrssiレベルを比較する必要があります。AndroidのNDK JNIでWifi RSSIレベルを取得する方法

ありがとうございます!

UPDATE

私はcppのファイルから文字列を取得することになりましたことができますよ。

ファイル: com_example_cvlab_ndktest_NativeClass.cpp

#include <com_example_cvlab_ndktest_NativeClass.h> 

JNIEXPORT jstring JNICALL 
Java_com_example_cvlab_ndktest_NativeClass_getMessageFromJNI 
    (JNIEnv *env, jclass obj){ 
    return env->NewStringUTF("This is a message from JNI"); 
    } 

com_example_cvlab_ndktest_NativeClass.h:

/* DO NOT EDIT THIS FILE - it is machine generated */ 
#include <jni.h> 
/* Header for class com_example_cvlab_ndktest_NativeClass */ 

#ifndef _Included_com_example_cvlab_ndktest_NativeClass 
#define _Included_com_example_cvlab_ndktest_NativeClass 
#ifdef __cplusplus 
extern "C" { 
#endif 
/* 
* Class:  com_example_cvlab_ndktest_NativeClass 
* Method: getMessageFromJNI 
* Signature:()Ljava/lang/String; 
*/ 
JNIEXPORT jstring JNICALL 
Java_com_example_cvlab_ndktest_NativeClass_getMessageFromJNI 
    (JNIEnv *, jclass); 

#ifdef __cplusplus 
} 
#endif 
#endif 

NativeClass.java パッケージcom.example.cvlab.ndktest。

/** 
* Created by zafaco on 14.06.2017. 
*/ 

public class NativeClass { 
    public native static String getMessageFromJNI(); 


} 

Android.mk:

LOCAL_PATH := $(call my-dir) 

    include $(CLEAR_VARS) 

    LOCAL_SRC_FILES := com_example_cvlab_ndktest_NativeClass.cpp 

    LOCAL_LDLIBS += -llog 
    LOCAL_MODULE := MyLibs 


    include $(BUILD_SHARED_LIBRARY) 

Application.mk:

APP_STL := gnustl_static 
    APP_CPPFLAGS := -frtti -fexceptions 
    APP_ABI := armeabi-v7a 
    APP_PLATFORM := android-16 

これは私のために正常に動作します。 これで、他のライブラリのメソッドをどのように呼び出すことができますか? たとえばIはLink1Link2 を発見し、私は、メソッドの入力がWiFiドライバに送信するコマンドであるRSSI

答えて

0

に興味があります。試してみてください:

cmdは、あなたのコマンドである
doCommand(const char *cmd, char *replybuf, int replybuflen); 

res = android_net_wifi_getRssiHelper("SIGNAL_POLL"); 

コマンドとレスポンスをより細かく制御を取得するには、経由して手動でコマンドを送信することができます。あなたが見る使用できるコマンドの一覧については

https://android.googlesource.com/platform/frameworks/base/+/0e2d281/wifi/java/android/net/wifi/WifiNative.java

+0

私は( "SIGNAL_POLL")RES = android_net_wifi_getRssiHelperを試してみました。私はこのエラーが表示されます:メソッド 'android_net_wifi_getRssiHelper(java.lang.String)'を解決できません。 –

+0

これはcで使用するネイティブメソッドでした。あなたはJava APIをお探しですか? – SoroushA

+0

申し訳ありません。あなたが正しいです。後で家に戻ってみる。これまでにありがとうございました! –

関連する問題