【问题标题】:Android "Google Translation" popup programmaticallyAndroid“谷歌翻译”以编程方式弹出
【发布时间】:2016-10-30 05:36:21
【问题描述】:

您知道 Google 翻译 现在可以在 Android 上的任何应用程序中使用吗?

我想摆脱我的应用程序中的额外操作:复制文本并按“翻译按钮”。

我想使用 java 代码显示这个弹出窗口,而不是它。有可能吗?

【问题讨论】:

  • 还有什么东西吗?我的应用需要同样的东西

标签: java android google-translate


【解决方案1】:

为时已晚,可能对有关此问题的任何人都有用... 它对我有用

  Intent intent = new Intent();
        intent .setType("text/plain");

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            intent.setAction(Intent.ACTION_PROCESS_TEXT);
            intent.putExtra(Intent.EXTRA_PROCESS_TEXT, text);
        }else{
            intent.setAction(Intent.ACTION_SEND);
            intent.putExtra(Intent.EXTRA_TEXT, text);
        }

        for (ResolveInfo resolveInfo : getPackageManager().queryIntentActivities(intent, 0)) {

            if( resolveInfo.activityInfo.packageName.contains("com.google.android.apps.translate")){
                intent.setComponent(new ComponentName(
                        resolveInfo.activityInfo.packageName,
                        resolveInfo.activityInfo.name));
                startActivity(intent);
            }

        }

here 是引用...

【讨论】:

  • 非常感谢!这正是我想要的。
  • 在最近的Android版本中,它需要读取包名的权限。除非您将以下内容添加到清单中,否则此代码不起作用:
  • @DamnVegetables 的评论很好,但我想补充更多。 1) 如果您面向 Android 11(API 级别 30)或更高版本,则需要查询标签:Package visibility filtering on Android。 2) 如果您想使用其他或不同的提供商,请查看 Microsoft Translator (com.microsoft.translator) 和 Reverso Context (com.softissimo.reverso.context)。
【解决方案2】:

可能为时已晚,但是...

   Intent intent = new Intent();
   intent.setAction(Intent.ACTION_PROCESS_TEXT);
   intent.setType("text/plain");
   intent.putExtra(Intent.EXTRA_PROCESS_TEXT_READONLY, true);
   intent.putExtra(Intent.EXTRA_PROCESS_TEXT, "hello");
   startActivity(intent);

【讨论】:

  • @Sergie,我试过这个,但是,它说在弹出的字典中找不到匹配项。请帮忙。
猜你喜欢
  • 2013-03-17
  • 1970-01-01
  • 2013-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多