Android打开手机QQ与指定用户聊天界面,打开指定用户的微博页面,打开指定用户的支付宝转账页面

以下为具体代码:

Android打开QQ界面:

1.这是第一种方法:

String url="mqqwpa://im/chat?chat_type=wpa&uin=123456";
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));

直接调用就好,后面可以接上自己的想要打开聊天的qq账号,非常的方便!

2.这是第二种方法(利用工具类):

 // 打开QQ对话, 其中Constants.UIN_QQ就指的一个qq账号,eg:992116519
ExchangeUtils.chatQQ(MainActivity.this, Constants.UIN_QQ);

现在贴出来这个工具类代码

package com.example.nyw.even2048;

import android.content.Context;
import android.content.Intent;
import android.net.Uri;


public class ExchangeUtils {

    private ExchangeUtils() {
        throw new IllegalAccessError("Utility class");
    }

    /****************
     * @param uinQQ 要发起临时对话的QQ号码
     * @return 返回true表示呼起手Q成功,返回false表示呼起失败
     ******************/
    public static boolean chatQQ(Context context , String uinQQ) {
        Intent intent = new Intent();
        intent.setData(Uri.parse("mqqwpa://im/chat?chat_type=wpa&uin=" + uinQQ));
        // 此Flag可根据具体产品需要自定义,如设置,则在加群界面按返回,返回手Q主界面,不设置,按返回会返回到呼起产品界面
        // intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
        try {
            context.startActivity(intent);
            return true;
        } catch (Exception e) {
            // 未安装手Q或安装的版本不支持
            e.printStackTrace();
            return false;
        }
    }

    /****************
     * @param key 由官网生成的key
     * @return 返回true表示呼起手Q成功,返回false表示呼起失败
     ******************/
    public static boolean joinQQGroup(Context context , String key) {
        Intent intent = new Intent();
        intent.setData(Uri.parse("mqqopensdkapi://bizAgent/qm/qr?url=http%3A%2F%2Fqm.qq.com%2Fcgi-bin%2Fqm%2Fqr%3Ffrom%3Dapp%26p%3Dandroid%26k%3D" + key));
        // 此Flag可根据具体产品需要自定义,如设置,则在加群界面按返回,返回手Q主界面,不设置,按返回会返回到呼起产品界面
        // intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
        try {
            context.startActivity(intent);
            return true;
        } catch (Exception e) {
            // 未安装手Q或安装的版本不支持
            e.printStackTrace();
            return false;
        }
    }
}

Android打开指定微博界面:

 if (com.sina.weibo.sdk.ApiUtils.validateWeiboSign(context, "com.sina.weibo")) {
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setData(Uri.parse("sinaweibo://userinfo?uid=" + weiboId));
                Intent chooseIntent = Intent.createChooser(intent, "Weibo");
                context.startActivity(chooseIntent);
            } else {
                NavigateHelper.startWebview(context, "http://weibo.com/u/" + weiboId);
            }

Android打开指定支付宝支付界面:

 
            // 打开支付宝打赏
                if (AlipayUtils.hasInstalledAlipayClient(MainActivity.this)) {
                    AlipayUtils.startAlipayClient(MainActivity.this, Constants.KEY_ALIPAY);
                } else {
                    tip("没有找到支付宝");
                }

工具类为:

package com.example.nyw.even2048;

import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.service.quicksettings.TileService;

import java.net.URISyntaxException;

/*********************************************************************
* Copyright © 2014-2017 zhoujianbin All Rights Reserved.
* Project Name:BKLockGuard
* File Creation Time:2017/07/12 03:08:46
* Class Description: 阿里支付宝工具类
* Comment: 阿里支付宝工具类
********************************************************************/

@SuppressWarnings(“unused”)
public final class AlipayUtils {
// 支付宝包名
private static final String ALIPAY_PACKAGE_NAME = “com.eg.android.AlipayGphone”;

// 旧版支付宝二维码通用 Intent Scheme Url 格式
private static final String INTENT_URL_FORMAT = "intent://platformapi/startapp?saId=10000007&" +
        "clientVersion=3.7.0.0718&qrcode=https%3A%2F%2Fqr.alipay.com%2F{urlCode}%3F_s" +
        "%3Dweb-other&_t=1472443966571#Intent;" +
        "scheme=alipayqr;package=com.eg.android.AlipayGphone;end";


public static final String ALIPAY_SCAN = "10000007";

public static final String ALIPAY_BARCODE = "20000056";

private AlipayUtils() {
    throw new IllegalAccessError("Utility class");
}

/**
 * 打开转账窗口
 * 旧版支付宝二维码方法,需要使用 https://fama.alipay.com/qrcode/index.htm 网站生成的二维码
 * 这个方法最好,但在 2016 年 8 月发现新用户可能无法使用
 *
 * @param activity Parent Activity
 * @param urlCode  手动解析二维码获得地址中的参数,例如 https://qr.alipay.com/aehvyvf4taua18zo6e 最后那段
 * @return 是否成功调用
 */
public static boolean startAlipayClient(Activity activity, String urlCode) {
    return startIntentUrl(activity, INTENT_URL_FORMAT.replace("{urlCode}", urlCode));
}

/**
 * 打开 Intent Scheme Url
 *
 * @param activity      Parent Activity
 * @param intentFullUrl Intent 跳转地址
 * @return 是否成功调用
 */
public static boolean startIntentUrl(Activity activity, String intentFullUrl) {
    try {
        Intent intent = Intent.parseUri(
                intentFullUrl,
                Intent.URI_INTENT_SCHEME
        );
        activity.startActivity(intent);
        return true;
    } catch (URISyntaxException | ActivityNotFoundException e) {
        e.printStackTrace();
        return false;
    }
}

/**
 * 判断支付宝客户端是否已安装,建议调用转账前检查
 *
 * @param context Context
 * @return 支付宝客户端是否已安装
 */
public static boolean hasInstalledAlipayClient(Context context) {
    PackageManager pm = context.getPackageManager();
    try {
        PackageInfo info = pm.getPackageInfo(ALIPAY_PACKAGE_NAME, 0);
        return info != null;
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
        return false;
    }
}

/**
 * 获取支付宝客户端版本名称,作用不大
 *
 * @param context Context
 * @return 版本名称
 */
public static String getAlipayClientVersion(Context context) {
    PackageManager pm = context.getPackageManager();
    try {
        PackageInfo info = pm.getPackageInfo(ALIPAY_PACKAGE_NAME, 0);
        return info.versionName;
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
        return null;
    }
}

/**
 * 打开支付宝界面
 *
 * @param context Context
 * @param saId String
 * saID:"10000007"打开支付宝扫码界面
 * saID:"20000056"打开支付宝付款码界面
 * @return 是否成功打开 Activity
 */

public static boolean openAlipayScan(Context context, String saId) {
    try {
        Uri uri = Uri.parse("alipayqr://platformapi/startapp?saId=" + saId);
        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
        if (context instanceof TileService) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                ((TileService) context).startActivityAndCollapse(intent);
            }
        } else {
            context.startActivity(intent);
        }
        return true;
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
}

// 支付宝打赏二维码key
public static final String KEY_ALIPAY = “FKX023479MNFIKOVRBKH14”;
这个key获取需要用到一个工具,利用二维码转成这个key

个人二维码key获得放法


链接地址: http://cli.im/deqr


希望可以帮到你 拿去耍不谢

猜你喜欢

转载自blog.csdn.net/Nieyuwen/article/details/78864870
今日推荐