大家好,关于ComponentName 控制第三方应用Activity与Service的启动很多朋友都还不太明白,今天小编就来为大家分享关于的知识,希望对各位有所帮助!
创建ComponentName 需要两个参数:
(1) 第三方应用的包名
(2)要打开的Activity和Service的全名(包名+类名)
公共组件名称(@NonNull String pkg,@NonNull String cls){
if (pkg==null) throw new NullPointerException("包名称为null");
if (cls==null) throw new NullPointerException("类名为null");
m包装=包装;
mClass=cls;
}启动第三方ActivityComponentName chatActivity=new ComponentName("com.feifei.example", "com.feifei.example.ChatActivity");
意图intent=new Intent();
intent.setComponent(chatActivity);
启动活动(意图);启动第三方ServiceComponentName chatService=new ComponentName("com.feifei.example", "com.feifei.example.ChatService");
意图intent=new Intent();
intent.setComponent(chatService);
启动服务(意图);
通过Component启动 系统应用
启动媒体库Intent i=new Intent();
ComponentName comp=new ComponentName("com.android.camera","com.android.camera.GalleryPicker");
i.setComponent(comp);
i.setAction("android.intent.action.VIEW");
startActivity(i);启动cameraIntent mIntent=new Intent();
ComponentName comp=new ComponentName("com.android.camera","com.android.camera.Camera");
mIntent.setComponent(comp);
mIntent.setAction("android.intent.action.VIEW");
启动活动(mIntent);
注意:
如果该Activity不是应用程序入口(该入口Activity默认为android:exported="true"),则需要在manifest文件中添加android:exported="true"。服务还需要添加android:exported="true"。允许外部应用程序调用。还有另一种方式启动第三方应用的Activity:intent.setClassNameIntentintent=new Intent();
好了,关于ComponentName 控制第三方应用Activity与Service的启动和的问题到这里结束啦,希望可以解决您的问题哈!
【ComponentName 控制第三方应用Activity与Service的启动】相关文章:
用户评论
这听起来很有用啊!想知道具体怎么操作?
有5位网友表示赞同!
我之前也试着想实现类似的功能,但遇到了一些问题...
有14位网友表示赞同!
这个方法是不是比直接使用Intent simpler些呢?
有19位网友表示赞同!
Component Name 在这里指的是什么? 是一个特定类或接口吗?
有7位网友表示赞同!
第三方应用的Activity或者Service的启动方式很多种吧? 具体是如何进行区分的?
有14位网友表示赞同!
这个方法需要注意些什么安全问题吗?
有16位网友表示赞同!
能不能分享一下具体的代码示例? 我想试试看。
有9位网友表示赞同!
这种机制是不是在 Android 系统中比较常见呢?
有10位网友表示赞同!
这样就能实现APP之间的数据共享了?
有13位网友表示赞同!
对于第三方应用来说,这个功能是必须的吗? 可以不实现吗?
有5位网友表示赞同!
我好奇第三方的Activity或者Service会被怎样整合进我的app?
有17位网友表示赞同!
有没有使用这种方法的最佳实践可以分享一下呢?
有16位网友表示赞同!
这个功能对提高系统性能有什么影响吗?
有15位网友表示赞同!
如果第三方应用出了问题,会对我的APP造成什么影响 ?
有13位网友表示赞同!
这种情况下是否有权限管理机制来防止恶意第三方app调用敏感操作?
有13位网友表示赞同!
这个方法能否适用于其他平台? 例如 iOS?
有9位网友表示赞同!
你提到启动 Activity 的话,是否也能启动广播接收器或者内容提供者呢?
有8位网友表示赞同!
我需要在应用程序中使用这种功能,有什么需要注意的吗?
有9位网友表示赞同!
想要了解更多关于 Component Name 的信息, 可以参考什么文档吗?
有10位网友表示赞同!
这篇文章的重点是什么? 能否总结一下?
有6位网友表示赞同!