私はAndroid環境が初めてで、ソフトウェア開発プロジェクトを開始したため、知識が少なすぎます。詳細なヘルプが必要です。
問題の詳細:
プロジェクトは github Robert m.theis からの ANDROID OCR コード ソースにあります
現在、その結果は-書かれたテキストの画像を取得している間、tesseractエンジンをテキストとして使用して非常に正確な出力を取得し、インターネットで検索します。
私の仕事は - テキスト文字列 (数字) を使用して、電話オペレーターに電話します。私のプロジェクト名は自動モバイル カード再充電システムです。
そのため、OcrResult.java というメソッド getText() クラスから結果テキストを取得し、自分のアクティビティに入れました。しかし、これが実際のデバイスで機能しない理由はわかりません。
ビルドしてエミュレーターで実行しますが、実際のデバイスでは少なくともメッセージを表示する必要があります! しかし、そうではありません。
また、アクティビティ android:name="edu.sfsu.cs.orange.ocr.call.CallManager" の下に (天使のブレースはここではリムーバーです) として manifest.xml ファイルに追加しました
アプリケーションの使用権限の下で android:name="android.permission.CALL_PHONE"
ここに私のコードは
package edu.sfsu.cs.orange.ocr.call;
import edu.sfsu.cs.orange.ocr.OcrResult;
import edu.sfsu.cs.orange.ocr.CaptureActivity;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.SurfaceHolder;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Toast;
public class CallManager extends Activity
{
public static final String preString = "*111*";
public static final String postString = "#";
//to store retrieved digits
String finalString;
//to get text result from ocr result
OcrResult getStringResult = new OcrResult();
String middleString = getStringResult.getText();
//if it fails to scan desired digit,call the process again
CaptureActivity tryProcessAgain = new CaptureActivity();
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
}
public void setString(String x)
{
middleString = x;
}
public String getString( String toBeInserted)
{
if(toBeInserted.length() == 16)
{
int counter = 0;
char [] insertHere = new char[16];
for(int verifier = 0; verifier < 16; verifier ++)
{
insertHere[verifier] = toBeInserted.charAt(verifier);
if(!Character.isDigit(insertHere[verifier]))
{
break;
}
counter ++;
}
if(counter == 16)
{
finalString = preString + toBeInserted + postString;
return finalString;
}
else
{
// @SuppressWarnings("unused")
//Toast toast = Toast.makeText(this, " number scan invalid.....OCR failed. Please try again.", Toast.LENGTH_SHORT);
//toast.show();
return middleString;
}
}
else
{
//@SuppressWarnings("unused")
//Toast toast = Toast.makeText(this, " number scannin invalid...OCR failed. Please try again.", Toast.LENGTH_SHORT);
//toast.show();
return middleString;
}
}
public void CallToOperator(String callMe)
{
Toast toast = Toast.makeText(this,finalString,Toast.LENGTH_SHORT);
toast.show();
//Toast toast1 = Toast.makeText(this,middleString,Toast.LENGTH_SHORT);
//toast1.show();
if(callMe == finalString)
{
try
{
startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + finalString)));
}
catch (Exception e)
{
e.printStackTrace();
}
}
else
{
tryProcessAgain.onShutterButtonPressContinuous();
}
}
}