简体   繁体   English

检查Android上的网址架构是否存在

[英]Check url schema existence on Android

I can use skype (or any other) application from my android app with url schemes like 'skype://' . 我可以将Android应用程序中的skype(或任何其他)应用程序与url方案(例如'skype://'
But can i check existence of schema on user mobile phone? 但是我可以检查用户手机上模式的存在吗? Like canOpenURL in iOS 就像iOS中的canOpenURL
Thanks. 谢谢。

A scheme is meaningless on its own -- it has to be tied to some action ( ACTION_VIEW , ACTION_CALL , etc.) in an Intent . 方案本身是没有意义的-它必须与Intent某些动作( ACTION_VIEWACTION_CALL等)相关联。

Your Java code can call resolveActivity() on PackageManager to determine if any given Intent will be handled by the system if you were to call startActivity() with that Intent . 您的Java代码可以调用resolveActivity()PackageManager ,以确定是否有任何给定的Intent将由系统,如果你要调用处理startActivity()Intent

You can use the following to check if the intent can be handled: 您可以使用以下命令检查意图是否可以处理:

public static boolean intentIsAvailable(Context ctx, Intent intent) {
   final PackageManager mgr = ctx.getPackageManager();
   List<ResolveInfo> list =
      mgr.queryIntentActivities(intent, 
         PackageManager.MATCH_DEFAULT_ONLY);
   return list.size() > 0;
}

usage: 用法:

if(intentIsAvailable(appContext, yourIntent)){
   startActivity(intent); 
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM