Instagram 应用程序无法使用 Android Intent 打开
Posted
技术标签:
【中文标题】Instagram 应用程序无法使用 Android Intent 打开【英文标题】:Instagram application does not open with Android Intent 【发布时间】:2020-07-15 11:41:04 【问题描述】:这是我的代码,问题是我不想发送图像,我只想打开 IG 应用程序。是的,该应用程序已安装,但仍未启动。
直到上周,这一切都很好。请帮忙。
Uri uri = Uri.parse("http://instagram.com/");
Intent insta = new Intent(Intent.ACTION_VIEW, uri);
insta.setPackage("com.instagram.android");
if (isIntentAvailable(insta))
this.startActivityForResult(insta, REQUEST_CODE_MY_PICK);
else
private boolean isIntentAvailable(Intent intent)
final PackageManager packageManager = getPackageManager();
List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
return list.size() > 0;
【问题讨论】:
如果清单中没有<queries>
元素,您的代码将无法在 Android 11 上运行。 ACTION_VIEW
不返回结果,所以startActivityForResult()
不是一个好的选择。 Instagram 不需要支持不安全的http
方案。而且,您可能应该记录一条消息和/或让用户知道您的 else
中发生了什么。
感谢@CommonsWare 的反馈.. 是的,我正在向其他用户提供反馈.. 我尝试了所有这些.. 仍然没有区别
【参考方案1】:
试试这个
Uri appUri = Uri.parse("https://instagram.com/_u/user_name");
Uri browserUri = Uri.parse("https://instagram.com/user_name");
try //first try to open in instagram app
Intent appIntent = getPackageManager().getLaunchIntentForPackage("com.instagram.android");
if(appIntent != null)
appIntent.setAction(Intent.ACTION_VIEW)
appIntent.setData(appUri);
startActivity(appIntent);
catch(Exception e) //or else open in browser
Intent browserIntent = new Intent(Intent.ACTION_VIEW, browserUri);
startActivity(browserIntent);
【讨论】:
【参考方案2】:尝试将Uri.parse("http://instagram.com/")
替换为Uri.parse("https://instagram.com/")
。还可以尝试删除 isIntentAvailable
并在没有 'forResult' 的情况下调用 startActivity(insta)
,最后删除 insta.setPackage
行。
【讨论】:
它在网络浏览器上打开 IG .. 我想要打开应用程序 检查 IG 应用的“默认打开”设置(在安卓应用设置中)。 “打开支持的链接”必须设置为“在此应用中打开”。还可以尝试将 Uri 转换为https://www.instagram.com
- 注意 www。以上是关于Instagram 应用程序无法使用 Android Intent 打开的主要内容,如果未能解决你的问题,请参考以下文章
Instagram 应用程序无法使用 Android Intent 打开
iOS 9 无法使用 URL SCHEME 打开 Instagram 应用
iOS 9 无法使用 URL SCHEME 打开 Instagram 应用