簡體   English   中英

嘗試使用Delphi更改Android設備讀寫權限的訪問沖突

[英]Access violation trying to change Android device R/W permission with Delphi

我正在使用Android的出色Com端口,以通過UOODO Android板和硬件設備之間的串行連接進行通信。 從Delphi應用程序看到的我的串行端口是“ / dev / ttymxc3”。

當我運行我的應用程序時,它告訴我“權限被拒絕”。 如果執行命令,則從另一個端口上的控制台訪問

chmod 666 /dev/ttymxc3

然后再次運行我的應用,一切正常。 因此,我已嘗試根據此SO問題以及從GitHub此處此處導入的“ java.lang.Runtime”和“ android.os.process”,從我的應用程序中按以下方式執行此命令

uses
  java.lang.Runtime,
  Androidapi.Helpers;


    procedure TForm1.Button1Click(Sender: TObject);
    begin
       TJRuntime.JavaClass.getRuntime.exec(StringToJString('chmod 666 /dev/ttymxc3'));
    end;

在這里,我希望可以從代碼更改權限。 我遇到訪問沖突。 如注釋中所建議,要找出錯誤的來源(並且因為Delphi調試器無法在該設備上使用),我執行了以下命令:

procedure TForm2.Button2Click(Sender: TObject);
var
  RunTime : JRuntime;
  S : JString;
begin
   try
     RunTime := TJRuntime.JavaClass.getRuntime;
     if not Assigned( RunTime ) then
       begin
         ShowMessage( 'E1' );
         Exit;
       end;
   except
     on E:Exception do
       ShowMessageFmt( 'E1A:%s', [E.Message] );
   end;

   try
     S := StringToJString('chmod 666 /dev/ttymxc3');
     if not Assigned( S ) then
       begin
         ShowMessage( 'E2' );
         Exit;
       end;
   except
     on E:Exception do
       ShowMessageFmt( 'E2A:%s', [E.Message] );
   end;

   try
     RunTime.exec( S );
   except
     on E:Exception do
       ShowMessageFmt( 'E3A:%s', [E.Message] );
   end;
end;

顯示AV會觸發我的“ E3A”錯誤,即使用“ exec”。 我的問題是:為什么我會得到這個AV? 我正在做的致命缺陷是嗎? 即我什至應該能夠從普通的Delphi應用程序中對此設備節點設置權限? 如果是這樣,我可以更改我的應用權限以允許這樣做嗎?

我將nanopi2與c ++生成器rx10 seatel一起使用,並且啟動的Android lolipop和winSoft comport組件與您相同當我使用您的方法(訪問沖突)時在c ++生成器中遇到了相同的問題,但是我使用另一種方法來解決我建議使用的方法我認為這可以解決您的問題

在德爾福

uses
  Posix.Stdlib


_system('su -c chmod 777 dev/ttyAMA0') ;

在C ++ Builder中

#include <Posix.Stdlib.hpp>

system('su -c chmod 777 dev/ttyAMA0') ;

my serial port in nanopi2 is ttyAMA0

carefull for sucssesfully open port  i had to set SELINUX to permission mode    by 
this instruction

 _system('su -c setenforce 0');

http://www.fmxexpress.com/launch-a-url-or-document-on-ios-and-android-with-delphi-firemonkey/

我愛Embarcadero我愛C ++ Builder

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM