【问题标题】:Toast on Image Detection in Vuforia either using Unity or Java without C++使用 Unity 或不使用 C++ 的 Java 在 Vuforia 中进行图像检测 Toast
【发布时间】:2016-02-19 10:39:33
【问题描述】:

当检测到图像时,我必须 Toast 一条消息。 哪种方法最简单? 使用 Unity 还是仅使用 JAVA 而不使用本地调用?

我已经尝试了 developer.vuforia.com 网站中提供的所有方法

我试过了 一、如何扩展Unity Android Activity 2. 如何在 Unity 应用程序中使用 Android 插件 3. 如何在 Unity 上为 Android 添加视图 4. 如何在目标检测和打开网站时显示 Toast

但没有任何效果..请指导我或发送工作示例的链接

【问题讨论】:

  • 您应该首先澄清您的问题,并向我们展示您已经尝试过什么,或者至少您认为解决方案可能是什么。此外,添加适当的标签(在这种情况下,您还需要 Unity)。
  • 我无法添加标志(统一)。对不起,我是新手...

标签: android unity3d vuforia


【解决方案1】:

我非常感谢您的努力。但是有一个非常简单的方法可以做到这一点:

  • 试试这个脚本

    使用 UnityEngine; 使用 System.Collections;

     public class ShowToast : MonoBehaviour {
    
         // Use this for initialization
         void Start () {
             MyShowToastMethod ();
    
         }
    
         string toastString;
         AndroidJavaObject currentActivity;
    
         public void MyShowToastMethod ()
         {
             if (Application.platform == RuntimePlatform.Android) {
                 showToastOnUiThread ("It Worked!");
             }
         }
    
         void showToastOnUiThread(string toastString){
             AndroidJavaClass UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
    
             currentActivity = UnityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
             this.toastString = toastString;
    
             currentActivity.Call ("runOnUiThread", new AndroidJavaRunnable (showToast));
         }
    
         void showToast(){
             Debug.Log ("Running on UI thread");
             AndroidJavaObject context = currentActivity.Call<AndroidJavaObject>("getApplicationContext");
             AndroidJavaClass Toast = new AndroidJavaClass("android.widget.Toast");
             AndroidJavaObject javaString=new AndroidJavaObject("java.lang.String",toastString);
             AndroidJavaObject toast = Toast.CallStatic<AndroidJavaObject> ("makeText", context, javaString, Toast.GetStatic<int>("LENGTH_SHORT"));
             toast.Call ("show");
         }
    
     }
    

【讨论】:

  • 这个方法可以改变文字颜色和背景颜色吗?
【解决方案2】:

我正在使用统一扩展,但我很确定核心代码库是相同的。图像目标使用名为 DefaultTrackableEventHandler 的类,并且有 OnTrackingFound() 函数。一旦检测到图像,就会调用它,这样您就可以在其中实现您的消息!反正我就是这样做的。祝你好运

【讨论】:

  • 感谢您的帮助...现在,我可以在图像检测时显示 toast 消息。我必须创建一个连接到服务器的 Android 应用程序,比如 Apache。扫描图像时,我必须根据扫描的图像从服务器检索数据。我用java编写插件并在脚本中调用它们。我可以遵循相同的方法,但是我如何将数据库与图像目标链接起来。?请帮忙
  • vuforia 云服务不是为您做这件事吗?我不明白这个问题。顺便说一句,如果我上面的回答解决了您的问题,请将其标记为答案。谢谢
  • 场景考虑有一个包含学生详细信息的数据库。我有学生的身份证作为数据集。 Desired Output 扫描图像目标时,我需要获取特定学生的详细信息。如果我扫描学生的身份证说“x”,我需要从数据库中获取关于学生“x”的所有相关详细信息??如何才能做到这一点?我问的东西是由 Vuforia Cloud 服务提供的吗?在此先感谢...
  • 请记住,我必须在 Android 上执行此操作,兄弟……顺便说一句,你明白我的问题还是你没听懂??
  • 是的,你可以。它基本上是在线图像目标管理器。您可以在它们上添加或修改数据。您也可以在线添加更多目标。
猜你喜欢
  • 1970-01-01
  • 2020-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多