Closed liyujiang-gzu closed 4 years ago
这个是从腾讯sdk里弄出来的,我等会儿弄掉吧,腾讯sdk有点坑
你先用上个版本的插件吧
好的,谢谢你,回复这么及时。这个provider是由我想腾讯申明提供给第三方用的,第三方APP里无需在Manifest里加的吧:com.tencent.tauth.fileprovider
这个是从腾讯sdk里弄出来的,我等会儿弄掉吧,腾讯sdk有点坑
QQ SDK的确很坑,demo的技术太过时了,那个Android 10。0 的Apache HttpClient兼容问题他们文档都没说明一下。
这个涉及Android分享文件,是第三方向腾讯QQ提供文件内容的
这个是我疏忽了,被腾讯sdk里的固定值误导,忘记这个权限要随应用包名而不同 …
我现在是这样来覆盖你原来的值:
<application>
<provider
android:name="io.github.v7lin.tencent_kit.content.TencentKitFileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true"
tools:replace="android:authorities">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/tencent_kit_file_paths" />
</provider>
</application>
{applicationId}.tauth.fileprovider 比较好,避免和其他library冲突
{applicationId}.tauth.fileprovider 比较好,避免和其他library冲突
好的,非常感谢!这个github还能跟聊天工具一样自动实时刷新消息啊,你一回复马上就看到
@v7lin
//com.tencent.open.utils.h#b
public static boolean b(Context context) {
List installedPackages = context.getPackageManager().getInstalledPackages(0);
if (installedPackages == null) {
return false;
}
for (int i = 0; i < installedPackages.size(); i++) {
if (((PackageInfo) installedPackages.get(i)).packageName.equals("com.tencent.mobileqq")) {
return true;
}
}
return false;
}
//io.github.v7lin.tencent_kit#TencentKitPlugin
boolean isQQInstalled = false;
try {
final PackageManager packageManager = registrar.context().getPackageManager();
PackageInfo info = packageManager.getPackageInfo("com.tencent.mobileqq", 0);
isQQInstalled = info != null;
} catch (PackageManager.NameNotFoundException ignore) {
}
腾讯SDK和你的插件,这里判断QQ是否安装似乎不太严谨,实际上QQ授权及分享支持的手机QQ版本有这几个:大众版(com.tencent.mobileqq)、轻聊版(com.tencent.qqlite)、办公简洁版(com.tencent.tim)
👌
我测试了一下,同时安装了普通大众版、急速轻聊版、办公简洁版、多语言国际版等,则拉起授权的是大众版,卸载掉大众版则拉起的是办公版,卸载掉办公版则拉起的是急速版,大众版、急速版、办公版这三个版本都没安装的话就拉起了一个下载最新版QQ的页面,可见腾讯QQ已经不支持网页授权,国际版也不支持SSO授权。
👌,我等会儿一起改了
android:authorities="com.tencent.tauth.fileprovider"
这句不是应该加上应用包名吗,不让同一个手机里就只能安装一个依赖这个的APP了: