1.注册定制的URL模式:在为您的应用程序注册URL类型时,必须指定CFBundleURLTypes属性的子属性。2.处理URL请求:应用程序委托在application:handleOpenURL:方法培枣滑中配腊处理传递给应用程序的URL请求。如果您已经为自己的应用程序注册了定制的URL模式,则务必在委托中实现这个方法。3.测试外部调用:回到Home屏幕,启动Safari(在iPhone仿真器上,在菜单上选择Hardware>Home命令就可以回到Home屏幕)。在Safari的地岩迟址栏中,键入使用定制模式的URL:callapp://justdoit确认您的应用程序是否启动,以及应用程序委托是否收到application:handleOpenURL:消息。4.app中调用:下面展示了一个程序如何请求另一个程序提供的服务(假定这个例子中的“callapp”是由应用程序注册的定制模式):
如果你知道另外一个程序的类名就可以这样写
intent.addCategory(Intent.CATEGORY_LAUNCHER)ComponentName cn = new ComponentName(packageName, className)
intent.setComponent(cn)
startActivity(intent)
2.如果你只知道包名不知道类名,首先获取类名
private void openApp(String packageName) {PackageInfo pi = getPackageManager().getPackageInfo(packageName, 0)
Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null)
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER)
resolveIntent.setPackage(pi.packageName)
轿陆配
List<ResolveInfo>闭指 apps = pm.queryIntentActivities(resolveIntent, 0)
ResolveInfo ri = apps.iterator().next()
if (ri != null ) {
String packageName = ri.activityInfo.packageName
String className = ri.activityInfo.name
Intent intent = new Intent(Intent.ACTION_MAIN)
intent.addCategory(Intent.CATEGORY_LAUNCHER)
ComponentName cn = new ComponentName(packageName, className)
intent.setComponent(cn)
startActivity(intent)
}
}
然悉漏后使用1中的方法调用程序
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)