コードオーロラのFMラジオコードを取得し、Android Gingerbreadのコードベースとマージしました。Android:JNI implementaionでデバイスファイルを開くことができません
FM appフレームワークは、ファイルandroid_hardware_fm.cppで実装されているJNIを使用してfm無線デバイス(/ dev/radio)にアクセスしようとします。このファイルには、読み取り/書き込みモードでopen()を使用してデバイスノードにファイル記述子を取得しようとする関数があります。ただし、呼び出しがエラーコード-13で失敗します。アクセスが拒否されました。
また、(RDWRモードで)/ dev/radioファイルを開こうとする小さなC実行可能ファイルを作成し、そのfdを出力して閉じます。ターゲットシステムの/ system/binから実行され、有効なfdが表示されます。
BtwのJNI実装は、アンドロイドコアライブラリの一部です。これはframeworks/base/core/jniにあり、libandroid_runtime.soの一部としてコンパイルされています
アイデア/ソリューションはありますか?前もって感謝します。
4年後、私は本当に似たような問題を抱えています:http://stackoverflow.com/questions/37486349 私は実行ファイルをアプリケーションと同じUIDとして実行して動作させています。以下の答え。あなたは解決策を見つけましたか? – jkoreska
@jkoreska私は回避策を使用したと思います。以下の答えの私のコメントを参照してください。 – trans1st0r