Android 創(chuàng)建QQ臨時會話,報“對方?jīng)]有開通在線咨詢,無法發(fā)起臨時會話”解決方案

qq群:614530228

今天在測試app內(nèi)創(chuàng)建QQ臨時會話時,發(fā)現(xiàn)不是QQ好友發(fā)送消息失敗,提示“對方?jīng)]有開通在線咨詢,無法發(fā)起臨時會話”錯誤,根據(jù)被創(chuàng)建會話的QQ類型分為兩種。

對QQ的操作封裝了如下工具類

public final class QQUtil {

    /**
     * 檢查是否安裝了app
     *
     * @param context     上下文對象
     * @param packageName app包名
     * @return true 已安裝 false 未安裝
     */
    public static boolean installedApp(Context context, String packageName) {
        if (TextUtils.isEmpty(packageName)) {
            return false;
        }
        PackageInfo packageInfo;
        try {
            packageInfo = context.getPackageManager().getPackageInfo(packageName, 0);
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
            packageInfo = null;
        }
        return null == packageInfo ? false : true;
    }

    /**
     * 打開企業(yè)qq,創(chuàng)建臨時會話
     *
     * @param context   上下文對象
     * @param qidianUrl 企點url 例如:http://q.url.cn/xxxx?_type=wpa&qidian=true
     */
    public static void openEnterpriseQQ(Context context, String qidianUrl) {
        Intent intent = new Intent(context, QQWebViewActivity.class);
        intent.putExtra("url", qidianUrl);
        context.startActivity(intent);
    }

    /**
     * 打開個人qq,創(chuàng)建臨時會話
     *
     * @param context 上下文對象
     * @param qq      qq號碼,該qq號碼必須開通QQ推廣,否則不能創(chuàng)建臨時會話 @url http://shang.qq.com/v3/index.html (開通方式,點擊推廣工具-> 登錄 -> 立即免費開通)
     */
    public static void openPersonalQQ(Context context, String qq) {
        context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("mqqwpa://im/chat?chat_type=wpa&uin=" + qq)));
    }
}
  • 企業(yè)QQ
if (QQUtil.installedApp(this, "com.tencent.mobileqq") || QQUtil.installedApp(this, "com.tencent.tim")) {
    // 此處url填寫自己公司企點地址
    QQUtil.openEnterpriseQQ(this, "http://q.url.cn/xxx?_type=wpa&qidian=true");
}
  • 個人QQ
if (QQUtil.installedApp(this, "com.tencent.mobileqq") || QQUtil.installedApp(this, "com.tencent.tim")) {
    QQUtil.openPersonalQQ(this,"qq號碼");
}

QQwebViewActivity.class

public class QQWebViewActivity extends AppCompatActivity {

    private WebView webView;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_qq_webview);
        webView = findViewById(R.id.webView);
        Intent intent = getIntent();
        if (null != intent) {
            String url = intent.getStringExtra("url");
            webView.loadUrl(url);
            //支持App內(nèi)部javascript交互
            webView.getSettings().setJavaScriptEnabled(true);
            //自適應屏幕
            webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
            //設置可以支持縮放
            webView.getSettings().setSupportZoom(false);
            //擴大比例的縮放
            webView.getSettings().setUseWideViewPort(false);
            //設置是否出現(xiàn)縮放工具
            webView.getSettings().setBuiltInZoomControls(false);
            webView.setWebViewClient(new WebViewClient() {
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    if (url.startsWith("mqqwpa")) {
                        Intent in = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                        in.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                        in.setAction(Intent.ACTION_VIEW);
                        startActivity(in);
                    } else {
                        view.loadUrl(url);
                    }
                    return true;
                }

                @Nullable
                @Override
                public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
                    return null;
                }

                @Override
                public void onPageFinished(WebView view, String url) {
                    super.onPageFinished(view, url);
                }
            });
        }
    }

    @Override
    protected void onStop() {
        super.onStop();
        finish();
    }
}

如果您有更好的解決方案,歡迎反饋給我。

---The end---

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,171評論 3 119
  • 點擊查看原文 Web SDK 開發(fā)手冊 SDK 概述 網(wǎng)易云信 SDK 為 Web 應用提供一個完善的 IM 系統(tǒng)...
    layjoy閱讀 14,282評論 0 15
  • 我與女友的記錄本閱讀 246評論 0 1
  • “教練,現(xiàn)在有時間嗎?”教練稍稍遲疑了一下說“嗯……有時間,你來吧。”“好勒,我馬上就去?!币粋€月沒打球了,...
    行路難_閱讀 256評論 0 3
  • 主持;朱文君。用語文做教育的教育工作者。全人課程。開發(fā)教育戲劇。把教育戲劇引入教師視野的第一所機構(gòu)。專業(yè)戲劇老師。...
    風清揚892閱讀 277評論 0 0

友情鏈接更多精彩內(nèi)容