【autojs】Auto.js Pro QR코드 식별 스크립트 소스 코드

42876 단어 스크립트 소스

코드

"ui";

ui.layout(
    <vertical>
       <text id="text_te" paddingTop="10" textSize="19sp" text="      "/>
        <text id="text_test" paddingTop="10" textSize="19sp"/>
        <horizontal padding="90 20 10 10">
            <button id="calc" align="center">    </button>
            <button id="up" align="center">  </button>
        </horizontal>
        <text id="text_url" paddingTop="10" textSize="19sp"/>
    </vertical>
);

var ResultIntent = {
    intentCallback: {},
    init: function() {
        activity.getEventEmitter().on("activity_result", (requestCode, resultCode, data) => {
            this.onActivityResult(requestCode, resultCode, data);
        });
    },
    startActivityForResult: function(intent, callback) {
        var i;
        for (i = 0; i < 65536; i++) {
            if (!(i in this.intentCallback)) break;
        }
        if (i >= 65536) {
            toast("  Intent  :     Intent  ");
            return;
        }
        this.intentCallback[i] = callback;
        activity.startActivityForResult(intent, i);
    },
    onActivityResult: function(requestCode, resultCode, data) {
        var cb = this.intentCallback[requestCode];
        if (!cb) return;
        delete this.intentCallback[requestCode];
        cb(resultCode, data);
    }
};
ResultIntent.init();

function URIUtils_uriToFile(uri) { //Source : https://www.cnblogs.com/panhouye/archive/2017/04/23/6751710.html
    var r = null,
        cursor, column_index, selection = null,
        selectionArgs = null,
        isKitKat = android.os.Build.VERSION.SDK_INT >= 19,
        docs;
    if (uri.getScheme().equalsIgnoreCase("content")) {
        if (isKitKat && android.provider.DocumentsContract.isDocumentUri(activity, uri)) {
            if (String(uri.getAuthority()) == "com.android.externalstorage.documents") {
                docs = String(android.provider.DocumentsContract.getDocumentId(uri)).split(":");
                if (docs[0] == "primary") {
                    return android.os.Environment.getExternalStorageDirectory() + "/" + docs[1];
                }
            } else if (String(uri.getAuthority()) == "com.android.providers.downloads.documents") {
                uri = android.content.ContentUris.withAppendedId(
                    android.net.Uri.parse("content://downloads/public_downloads"),
                    parseInt(android.provider.DocumentsContract.getDocumentId(uri))
                );
            } else if (String(uri.getAuthority()) == "com.android.providers.media.documents") {
                docs = String(android.provider.DocumentsContract.getDocumentId(uri)).split(":");
                if (docs[0] == "image") {
                    uri = android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
                } else if (docs[0] == "video") {
                    uri = android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
                } else if (docs[0] == "audio") {
                    uri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
                }
                selection = "_id=?";
                selectionArgs = [docs[1]];
            }
        }
        try {
            cursor = activity.getContentResolver().query(uri, ["_data"], selection, selectionArgs, null);
            if (cursor && cursor.moveToFirst()) {
                r = String(cursor.getString(cursor.getColumnIndexOrThrow("_data")));
            }
        } catch (e) {
            log(e)
        }
        if (cursor) cursor.close();
        return r;
    } else if (uri.getScheme().equalsIgnoreCase("file")) {
        return String(uri.getPath());
    }
    return null;
}

function startChooseFile(mimeType, callback) {
    var i = new android.content.Intent(android.content.Intent.ACTION_GET_CONTENT);
    i.setType(mimeType);
    ResultIntent.startActivityForResult(i, function(resultCode, data) {
        if (resultCode != activity.RESULT_OK) return;
        var f = URIUtils_uriToFile(data.getData());
        ui.run(() => {
            ui.text_test.setText(f);
        });
    });
}

ui.calc.click(() => {
    startChooseFile("*/*");
});

ui.up.click(() => {
    threads.start(function() {
        let ert = ui.text_test.text();
        if(ert){
        let wsx = Dist(ui.text_test.text());
        if(wsx){
        ui.run(() => {
            ui.text_url.setText(wsx);
        });}}else{toast("      ");}
    });
});
ui.text_url.click(() =>{
        let xbj = ui.text_url.text();
    if (xbj) {
        setClip(xbj);
        toast("    ");
    }
});


function Dist(imgPath){
deypath="/sdcard/Android/dey.dex";
if(files.isFile(deypath)){
    try{
runtime.loadDex(deypath);
importPackage(com.google.zxing);
importPackage(com.google.zxing.common);
importPackage(com.google.zxing.client.j2se);
var pixels = images.readPixels(imgPath);
var w = pixels.width;
var h = pixels.height;
var binaryBitmap = new BinaryBitmap(new HybridBinarizer(
    new RGBLuminanceSource(w, h, pixels.data)));
var qrCodeResult = new MultiFormatReader().decode(binaryBitmap);
let edc=qrCodeResult.getText();
toastLog(edc);
return edc;}catch (e){log(e);toast("    !!");return false;}
}else{confirm("    ","           ,  ?", (value) => {if(value){down();}else{toast("               ")}})}
}

function down(){
    threads.start(function(){
let url = "http://bmob-cdn-21628.b0.upaiyun.com/2018/11/18/20cefe4640fa37fa8032197d0d502a7b.dex";
let res = http.get(url);
if(res.statusCode != 200){
    toast("    ");
}
files.writeBytes("/sdcard/Android/dey.dex", res.body.bytes());
toast("    ");});
}

설명


본고에서 제공한 코드는 참고만 제공한다.아마도 최신 버전의 Auto에서js 위에서 수정을 해야만 실행할 수 있습니다.

Auto.js 소개


Auto.js는 안드로이드 시스템의'보조 기능'을 이용하여 버튼 요정과 유사하게 코드를 통해 일련의 인터페이스 동작을 모의할 수 있는 보조 작업이다.'버튼 요정'과 달리 그의 시뮬레이션 동작은 인터페이스에서 좌표점을 정하는 데 간단하게 사용되는 것이 아니라 win과 같이 창 손잡이를 찾아 실현하는 것이다.
Auto.js는 자바스크립트를 스크립트 언어로 사용하고 현재 Rhino 1.7.2.2를 스크립트 엔진으로 사용하며 ES5와 일부 ES6 기능을 지원합니다.

개발 문서


Auto.jsPro 개발 문서 최적화 버전 문서가 아직 보완 중이기 때문에 문서 설명과 코드의 실제 행위가 일치하지 않을 수 있습니다.템플릿, 스타일, generator는 Node에서 온 것입니다.js.

Auto를 사용하는 이유js Pro 개발 스크립트의 특징은 무엇입니까?


Auto를 사용하도록 유도하십시오.js Pro의 이유는 다양합니다.가장 중요한 몇 가지 이유는 다음과 같다.
  • Auto.js Pro는 ROOT가 없는 안드로이드 스크립트를 개발할 수 있다
  • Auto.js Pro는 노드 조작을 바탕으로 전체 해상도 스크립트를 개발하여 각종 안드로이드 모델에 자동으로 적응할 수 있음
  • Auto.js Pro의 풍부한 UI 구성 요소로 다양한 스타일의 안드로이드 인터페이스를 사용자 정의할 수 있음
  • Auto.js Pro에서 사용하는javascript의 문법은 비교적 우아하고 코드의 가독성이 강하다
  • Auto.js Pro의 명령 라이브러리는 매우 풍부하고 인터페이스가 비교적 많다
  • Auto.js Pro 스크립트 파일의 크기가 작습니다.1000줄 코드, 포장된 apk 파일은 3-5M, 아직 광고 없음
  • 관련 자습서


    Auto.js Pro 안드로이드 해상도 ROOT 유입 방지 스크립트 개발 자습서

    좋은 웹페이지 즐겨찾기