在一个Android application 调用另一个 application 里的 Activity 和 Service
来源:互联网 发布:电子目录制作软件 编辑:程序博客网 时间:2024/05/24 05:32
来源:http://harrysmithliu.blog.163.com/blog/static/212381194201210221133655/
Android application 和普通的应用程序有些差别,他是由四大组件(compoment)组成的,即Activity,Service,ContentProvider ,和BroadcastReceiver。 本文介绍从一个application 调用其它application 里的 Activity 和 Service。
要启动别的app里的 Activity 和 Service,主要生成两个 intent 实例,分别把实例的action 设置成和另一个 application 里 AndroidManifest.xml定义的 intent-filter 里的Action一样:Intent::setAction(Action name)。
启动另一个app里的Activity:
Intent testActivityIntent = new Intent(); testActivityIntent.setAction("com.android.1234F"); startActivity(testActivityIntent);
com.android.1234F就是在另一个App里AndroidManifest.xml中对相应Activity定义的Action,请看
<activity android:name=".SecondAndroid" android:label="@string/app_name"> <intent-filter> <action android:name="com.android.1234F" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>
接着,启动另一个app里的Service:
testActivityIntent = null ; testActivityIntent = new Intent(); testActivityIntent.setAction("android.intent.action.START_PCM_PLAY_SERVICE") ; stopService(testActivityIntent); startService(testActivityIntent);
android.intent.action.START_PCM_PLAY_SERVICE 就是另一个app里AndroidManifest.xml中对相应Service定义的Action,请看
<service android:enabled="true" android:exported="true" android:name=".ServiceInSecondAndroid" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.START_PCM_PLAY_SERVICE"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </service>
另一个 app里的 Activity就照正常的规则来书,这里展出了一个 Service 播放pcm的例子:
public class ServiceInSecondAndroid extends Service { private AudioTrack at = null ; @Override public void onCreate() { super.onCreate(); Log.v("tiantian", "thirdAndroid.onCreate()"); if( at != null ) { at.release() ; } at = new AudioTrack( AudioManager.STREAM_MUSIC , 44100 , AudioFormat.CHANNEL_OUT_STEREO ,AudioFormat.ENCODING_PCM_16BIT , 44100*4*25, AudioTrack.MODE_STATIC ) ; if( at!= null ) Log.v("tiantian", "AudioTrack success create"); FileInputStream f1 ; try { f1=new FileInputStream("/sdcard/gaosu_44100_stereo.pcm"); } catch ( IOException e ) { Log.v("tiantian", "gaosu_44100_stereo.pcm not exist"); return; } byte[] payload = new byte[44100*4*25] ; Log.v("tiantian", "payload ok"); int len ; try { len = f1.read(payload, 0, 44100*4*25); } catch (IOException e ) { Log.v("tiantian", "fail to read gaosu_44100_stereo.pcm"); return ; } try { f1.close(); } catch (IOException e ) { Log.v("tiantian", "close error"); return; } at.write(payload,0,len); at.play(); return ; } public IBinder onBind(Intent intent) { Log.v("tiantian", "onBind"); return null; } }
0 0
- 在一个Android application 调用另一个 application 里的 Activity 和 Service
- 在一个Android application 调用另一个 application 里的 Activity 和 Service
- 在一个Android application 调用另一个 application 里的 Activity 和 Service
- 在一个Android application 调用另一个 application 里的 Activity 和 Service
- 在一个 application 中调用另一个 application 里的 Activity
- Android之Content和activity、service、Application关系和attachBaseContext函数调用的时候
- Android中Activity、Service和Application的Context分析
- Android 在 (Activity service application receiver) 中读取<meta-data>元素的数据
- 在activity中调用Application 出现android java.lang.ClassCastException
- 关于Android退出 Activity 和 退出已调用多个 Activity 的 Application方式及区别
- Context对象和Activity,Service,Application的关系
- Application、Activity、Service和Context之间的构建关系
- 在Winform Application中调用Duplex Service出现TimeoutException的原因和解决方案
- android一个应用的activity调用另一个应用的activity
- Android如何使用已调用多个Activity的Application
- android:label标签在application和activity中的设置问题
- Application和Activity的异同
- 一个application如何向另一个application传值
- Ubuntu 14.04 FTP服务器--vsftpd的安装和配置
- java后台表单验证工具类
- 如何减小ipa包大小方法总结
- MySQL之左、右、内关联类型解析
- 【python3自学笔记1】—Python简介
- 在一个Android application 调用另一个 application 里的 Activity 和 Service
- 使用Carthage管理iOS第三方库
- 表单提交和超链接请求传递参数的几种方式
- HDU 1506 Largest Rectangle in a Histogram (dp)
- 获取缓存大小,清除缓存,网上找的,留着备用
- 批量梯度下降(BGD)、随机梯度下降(SGD)、小批量随机梯度下降(MSGD)实现过程详解
- 【机器学习】统计知识之经验风险最小化与结构风险最小化
- CSS基础学习1-HTML应用CSS的三种方法
- POJO和javabean的异同