5.28

所花时间(包括上课):1.5

打码量(行):200

博客量(篇):1

了解到知识点:学习调用识别api

 

 package com.example.myapp;

 

import android.os.AsyncTask;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.ImageView;

import android.widget.Toast;

 

import androidx.appcompat.app.AppCompatActivity;

 

import org.json.JSONException;

import org.json.JSONObject;

 

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.net.HttpURLConnection;

import java.net.URL;

 

public class MainActivity extends AppCompatActivity {

 

    private static final String TAG = "MainActivity";

    private static final String API_KEY = "your_api_key";

    private static final String API_URL = "https://api.example.com/recognize";

 

    private Button recognizeButton;

    private ImageView imageView;

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

 

        recognizeButton = findViewById(R.id.recognizeButton);

        imageView = findViewById(R.id.imageView);

 

        recognizeButton.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                new RecognizeTask().execute();

            }

        });

    }

 

    private class RecognizeTask extends AsyncTask<Void, Void, String> {

 

        @Override

        protected String doInBackground(Void... voids) {

            try {

                // 模拟发送图像数据到识别 API

                URL url = new URL(API_URL);

                HttpURLConnection connection = (HttpURLConnection) url.openConnection();

                connection.setRequestMethod("POST");

                connection.setRequestProperty("Authorization", "Bearer " + API_KEY);

                connection.setDoOutput(true);

 

                // 此处可根据需要设置请求体,例如上传图像数据

                // ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

                // imageBitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream);

                // byte[] imageBytes = outputStream.toByteArray();

                // connection.getOutputStream().write(imageBytes);

 

                InputStream inputStream = connection.getInputStream();

                ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

                byte[] buffer = new byte[1024];

                int bytesRead;

                while ((bytesRead = inputStream.read(buffer)) != -1) {

                    outputStream.write(buffer, 0, bytesRead);

                }

                return outputStream.toString("UTF-8");

            } catch (IOException e) {

                Log.e(TAG, "Error in recognizing", e);

                return null;

            }

        }

 

        @Override

        protected void onPostExecute(String result) {

            super.onPostExecute(result);

            if (result != null) {

                try {

                    JSONObject jsonObject = new JSONObject(result);

                    // 处理识别结果

                    String recognizedText = jsonObject.getString("recognized_text");

                    Toast.makeText(MainActivity.this, "Recognized Text: " + recognizedText,

                            Toast.LENGTH_SHORT).show();

                } catch (JSONException e) {

                    Log.e(TAG, "Error parsing JSON", e);

                }

            } else {

                Toast.makeText(MainActivity.this, "Recognition failed", Toast.LENGTH_SHORT).show();

            }

        }

    }

}

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent">

 

    <Button

        android:id="@+id/recognizeButton"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="Recognize"

        android:layout_centerInParent="true" />

 

    <ImageView

        android:id="@+id/imageView"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_below="@id/recognizeButton"

        android:layout_marginTop="16dp"

        android:src="@drawable/sample_image" />

 

</RelativeLayout>

posted @ 2024-05-28 21:32  赵千万  阅读(2)  评论(0编辑  收藏  举报