Android 開啟手機QQ,實現類似於客服功能
阿新 • • 發佈:2019-02-03
專案中,遇到一個小問題,在此記錄一下,就是實現客服的功能。由於專案並沒有整合 IM 模組,所以利用手機QQ,實現客服功能!!
實現比較簡單:
/**
* 判斷 使用者是否安裝QQ客戶端
*/
public static boolean isQQClientAvailable(Context context) {
final PackageManager packageManager = context.getPackageManager();
List<PackageInfo> pinfo = packageManager.getInstalledPackages(0 );
if (pinfo != null) {
for (int i = 0; i < pinfo.size(); i++) {
String pn = pinfo.get(i).packageName;
if (pn.equalsIgnoreCase("com.tencent.qqlite") || pn.equalsIgnoreCase("com.tencent.mobileqq")) {
return true;
}
}
}
return false;
}
/**
* 判斷 Uri是否有效
*/
public static boolean isValidIntent(Context context, Intent intent) {
PackageManager packageManager = context.getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, 0);
return !activities.isEmpty();
}
// 跳轉之前,可以先判斷手機是否安裝QQ
if (isQQClientAvailable(this)) {
// 跳轉到客服的QQ
String url = "mqqwpa://im/chat?chat_type=wpa&uin=客服的QQ";
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
// 跳轉前先判斷Uri是否存在,如果開啟一個不存在的Uri,App可能會崩潰
if (isValidIntent(intent)) {
startActivity(intent);
}
}
這裡還有一個坑,就是我們客服的QQ需要開通線上諮詢功能。如果沒有開通,雖然能發起QQ對應的聊天介面,但是不能傳送資訊:
如還有其他坑,請不吝留言,謝謝!!