当前位置:主页 > 移动开发 > Android代码 >

Android实现打开手机淘宝并自动识别淘宝口令弹出商品信息功能

时间:2021-09-29 08:48:10 | 栏目:Android代码 | 点击:

Android开发实现打开手机淘宝,并自动识别淘口令,弹出商品信息,大家都遇到过被莫名其妙拉进一个微信群,然后群主开始发一些商品的链接,我们点击这个链接,会让我们复制一个口令(就像这个¥AzZK0hPyou5¥),当我们复制这个口令打开淘宝会自动弹出这个商品的信息。今天,就来和大家分享一下,这个需求是如何实现的。

1.首先我们需要后台帮助我们对接淘宝的商品接口,因为这个东西(¥AzZK0hPyou5¥)是淘宝提供的,我们要做的只是通过网络请求我们的后台,把这个口令拿到就行,至于后台是如何调用淘宝的接口,这个完全不需要我们操心。

2.拿到这个口令以后,我们第一步先要打开淘宝,这里小伙伴们要注意一下,我们只需要打开手机淘宝的程序就行,不需要进入商品详情页什么(网上大部分都是讲的如何进入商品的详情页面,不过,对于我们这个需求,进入商品详情页面是不适用的),我们可以通过下面的代码来启动手机淘宝

Intent intent = getPackageManager().getLaunchIntentForPackage("com.taobao.taobao");
startActivity(intent);

上面的代码很好理解,通过淘宝包名创建了一个意图(注:“com.taobao.taobao”就是手机淘宝的包名),最后打开这个意图对应的Activity。

3.虽然这个时候我们已经能够成功的打开淘宝,但是,我们要如何让淘宝自动识别出来我们复制的口令所对应的商品信息呢?我当时也在这里卡了很久,我们不妨回头再看一下我们在微信群里的操作步骤,打开链接,复制商品的口令,再打开淘宝,自动弹出商品的信息(PS:这里感谢我的IOS搭档),我们只是做了一个复制的操作,就自动弹出商品的信息了,问题的关键应该就是在这里了。

4.既然是复制,肯定是复制到系统的剪切板了,我们可以通过下边的代码来把口令给复制到系统的剪切板里

//获取剪贴板管理器:
ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
// 创建普通字符型ClipData
ClipData mClipData = ClipData.newPlainText("Label", "¥AzZK0hPyou5¥");
// 将ClipData内容放到系统剪贴板里。
cm.setPrimaryClip(mClipData);

注意:ClipboardManager 和 ClipData 分别是下面的两个包下的

import android.content.ClipData;
import android.content.ClipboardManager;

5.我这里的步骤的顺序是不对的,应该是先复制信息到剪切板,然后再打开淘宝,第2步和第4步的顺序换一下就可以了。这里我是为了记录我当时的错误想法,所以排版就没有改过来,希望大家见谅!

最后:到这里这个需求就完成了,其实也挺简单的,希望可以帮助到有需要的小伙伴们!

PS:下面看下android 仿淘宝淘口令实现代码

复制*wangbin1*口令打开APP

在主activity  onResume中执行代码块

public void GangUpInvite(final Context context) {
  ClipboardManager clipboard = (ClipboardManager) context.getSystemService(CLIPBOARD_SERVICE);
  //无数据时直接返回
  if (!clipboard.hasPrimaryClip()) {
    return;
  }
  //如果是文本信息
  if (clipboard.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)) {
    ClipData cdText = clipboard.getPrimaryClip();
    ClipData.Item item = cdText.getItemAt(0);
    //此处是TEXT文本信息
    if (item.getText() != null) {
      String str = item.getText().toString();
      String key = "*";
      final int first = str.indexOf(key);
      if (first >= 0) {
        String new1 = str.substring(first + 1);
        int tow = new1.indexOf(key);
        if (tow >= 0) {
          String new2 = new1.substring(0, tow);
          System.out.print(new2);
          if (new2.length() == 8) {
            //new2即为口令字符串
          }
        }
      }
    }
  }
}

取到key配合后端 获取该口令相关信息

总结

您可能感兴趣的文章:

相关文章