|
/

社会化分享 7.1.4 targetSDK>28的情况下无法判断外部app是否安装

Ggtr
发布于 2 年前
1216265
社会化分享 U-Share
API调用

判断要调用的外部app是否有安装的方法

if (!UMShareAPI.get(context).isInstall((Activity) context, share_media)) {

Toast.makeText(context, context.getString(R.string.please_install_client), Toast.LENGTH_SHORT).show();

return;

}

返回的是 false ,导致无法唤起外部app,但是明明我已经安装了要调用的外部app,比如微信 facebook等,这种情况在 targetSDK > 28才会出现 ,并且我清单文件也添加了fileProvider,这让我不知道怎么去解决这个问题了。

12个回答
 
2 年前

此类问题应该做排除法:

1:升级最新版SDK尝试!

2:xml/file_paths中尝试开放目录

<!--内置SD卡 Environment.getExternalStorageDirectory() .表示共享所有的目录,也可以指定共享的目录-->
<external-path
name="external-path"
path="."/>
<!--内置SD卡 Context.getExternalCacheDir() .表示共享所有的目录,也可以指定共享的目录-->
<external-cache-path
name="external-cache-path"
path="."/>
<!--内置SD卡 Context.getExternalFilesDir(null) .表示共享所有的目录,也可以指定共享的目录-->
<external-files-path
name="external-files-path"
path="."/>
<!--data目录下 Context.getFilesDir() .表示共享所有的目录,也可以指定共享的目录-->
<files-path
name="files_path"
path="."/>
<!--data缓存目录 Context.getCacheDir() .表示共享所有的目录,也可以指定共享的目录-->
<cache-path
name="cache-path"
path="."/>
<!--这个标签Android官方文档中是没有提及,Android设备的根目录,该目录下包含着手机内部存储器,外置SD卡等所有文件的目录-->
<root-path
name="name"
path="."/>

3: Android版本迭代变化
在29版本后,只能操作本身内部存储私有目录、外部存储私有目录、共享存储,但是依然可以通过android:requestLegacyExternalStorage="true"来设置(在AndroidManifest.xml中的application添加该配置),不启用分区存储,一切照旧。
但是30版本以后,就强制性的只能操作规定的目录,这个时候依然有个兼容配置设置,android:preserveLegacyExternalStorage="true"(在AndroidManifest.xml中的application添加该配置),这个配置使得手机appSdk30版本以下,更新appSdk30版本以后,依然不启用分区存储,一切照旧。

 
2 年前
android:preserveLegacyExternalStorage="true"

在大管家文件加上这个配置,可使得手机appSdk30版本以下,更新appSdk30版本以后,不启用分区存储。

 
2 年前

1、检查SDK版本,看看是否有重大更新;

2、28以后,APP的权限控制更严格了,storage和Android/data里面调用不了了。

 
2 年前

首先要排查一下你集成的友盟sdk是否是最新的版本,然后查看是否有版本兼容配置设置不对的问题。

 
2 年前

targetSDK <= 28 没有问题,可能是sdk存在bug,考虑升级一下友盟的sdk。

 
2 年前

权限是否都配置齐全了呢?

 
2 年前

 
2 年前

您好,测试机器安卓版本是多少呢? <queries> <package android:name="com.eg.android.AlipayGphone" /> <package android:name="com.facebook.katana" /> <package android:name="com.tencent.mm" /> <package android:name="com.tencent.mobileqq" /> </queries> 清单配置app包名了吗?

Loading ...
登录社区,分享你的经验