android发送intent
㈠ 如何在Android中启动JAVA程序
在Android中启动JAVA程序其实有很多种方式,现总结如下
一、在Android应用程序中发送Intent启动Android应用程序
这个方式最简单,最常用。在此不在累述。关于Intent的更多内容请阅读《Intent技术简介》
二、在shell控制台通过am命令发送Intent来启动Android应用程序
在Android的shell控制台通过am命令发送Intent来启动Android应用程序
关于此的详细内容请参考《Android命令am详解》
三、在shell控制台直接通过davlikvm命令启动一个JAVA程序。
该方式有个天生的缺点,即在其中,很多Android的JNI无法调用。因为Android的很多JNI其实是需要手动注册的。
关于请参考《基本Dalvik VM调用》
四、在shell控制台直接通过运行app_process程序启动一个JAVA程序
在app_process程序中,他会对Android的JNI进行手动注册的,能很好的使用Android的API,因此通过运行app_process程序启动一个JAVA程序,是一个比较完美的方式。app_process程序是一个C程序,它的源码位于frameworks\base\cmds\app_process。
关于它的使用请参考《Android命令am详解》以及shell脚本frameworks\base\cmds\am\am和frameworks\base\cmds\pm\pm
am脚本文件如下:
# Script to start "am" on the device, which has a very rudimentary# shell.#base=/systemexport CLASSPATH=$base/framework/am.jarexec app_process $base/bin com.android.commands.am.Am "$@"pm脚本文件如下:
# Script to start "pm" on the device, which has a very rudimentary# shell.#base=/systemexport CLASSPATH=$base/framework/pm.jarexec app_process $base/bin com.android.commands.pm.Pm "$@"CLASSPATH指定了你的程序的位置,com.android.commands.pm.Pm则说明了程序的入口为com.android.commands.pm.Pm,即入口函数main()所在的类,"$@"就是传递给main()函数的参数,只是这里"$@"本身又是个shell传入的参数而已
需要注意的是CLASSPATH中的文件必须是dalvik文件格式的,关于此的转换请参考《基本Dalvik VM调用》当然CLASSPATH中的文件可以是apk文件,只是你的apk中至少应该有个拥有main()入口函数的类。
转载
㈡ Android广播发送意图权限问题,求大神指点
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
㈢ Android系统中的Broadcast和Intent有什么区别
Android系统中的Broadcast和Intent有什么区别?
在Android系统中,Broadcast和Intent都是非常常见的概念和组件。虽然它们非常相似,但它们之间还是有很多区别的。在本文中,我们将探讨Broadcast和Intent之间的区别。
Broadcast是一个事件机制,是一种基于消息传递的系统。通过其发送者发送消息,然后所有的接收者都可以监听到这个消息并做出相应的反应。这种机制非常灵活,可以使应用程序间相互通讯,实现一些复杂的功能。
而Intent是一个携带数据(例如文本、图像、视频等)的对象。它通常用于在应用程序之间传递消息或数据,并指导Android系统执行特定的操作或启动特定的组件(如Activity、Service或BroadcastReceiver)。Intent的一大优势是它能够启动其他应用程序,以及让其他应用程序启动他们自己的Activity、Service或BroadcastReceiver。
可以将Broadcast看作是一种事件,而Intent则是一种数据传递的机制。Broadcast是一种异步的,无法保证其他应用程序的接收者会及时接收到消息。相反,Intent则是一种同步的,可以确保数据在应用程序之间的传输是完整和准确的。
除此之外,Broadcast还可分为系统Broadcast和自定义Broadcast。系统Broadcast由Android系统负责发送和接收,并且通常只能被系统应用程序进行监听和反应。而自定义Broadcast则是由开发人员自行创建和发送的,在应用程序之间广播。
总的来说,Broadcast和Intent都有着自己的功能和优点。Broadcast通常用于事件机制的通知,而Intent则可以在应用程序之间传递数据和激活组件。对于开发人员来说,理解Broadcast和Intent之间的差异,可以帮助他们更好地实现复杂的应用程序和非常规场景的操作。
㈣ Android 收到intent后怎么获取到发送者的包名
broadcast发送的时候都是传递一个intent对象,这个intent对象就是传给onReceive方法的那个intent.通过这个intent就可以获取发送广播的程序的包名,知道了包名就知道是哪个程序了。
ComponentName com = intent.getComponent();
String pkgName = com.getPackageName();
试试看行不行。。。
㈤ android怎么才能传递多个参数和对象
activity之间传递参数你可以
ntent intent = new Intent();
intent.setClass(this, DetailActivity.class);
intent.putExtra("human", human);
intent.putExtra("method", method);
.....
有更多参数都可中圆以在这里put
startActivity(intent);
在相应的activity里可以弊弯这样取传过租培闷来的参数
getIntent().getExtras().getSerializable("human");
.......
㈥ Android Intent的作用,哪些类型的数据可以被传递
(1) 要激活一个新的Activity,或者让一个现有的Activity执行新的操作,可以通过调用Context.startActivity()或者Activity.startActivityForResult()方法。这两个方法需要传入的Intent参数也称为Activity Action Intent(活动行为意图),根据Intent对象对目标Activity描述的不同,来启动与之相匹配的Activity或传递信息。
(2) 要启动一个新的服务,或者向一个已有的服务传递新的指令,调用Context.startService()方法或调用Context.bindService()方法将调用此方法的上下文对象与Service绑定。
Intent一旦发出,Android都会准确找到相匹配的一个或多个Activity、Service或Broadcast-Receiver作为响应。所以,不同类型的Intent消息不会出现重叠:BroadcastIntent消息只会发送给BroadcastReceiver,而绝不可能发送给Activity或Service。由startActivity()传递的消息也只可能发送给Activity,由startService()传递的Intent只可能发送给Service。
向下一个Activity传递数据(使用Bundle和Intent.putExtras)
Intent it = new Intent(Activity1.this, Activity2.class);
Bundle bundle=new Intent();
bundle.putString("name", "This is from MainActivity!");
it.putExtras("bd",bundle); // it.putExtra(“test”, "shuju”);
startActivity(it); // startActivityForResult(it,REQUEST_CODE);
㈦ android 开发 一个通过服务端内容自动发送短信到指定号码
服务器和手机端通信,如果要实时通信,就需要使用推送,自己写的推送一般不够好,还是使用专业推送比较好,国内的可以使用极光推送,网络推送等等,如果是国际的可以使用谷歌的google cloud message,或者使用友盟……友盟还是比较靠谱的。
然后手机发送短信只需要一个权限,然后会有很简单的代码就可以发送短信了,而且,一般的第三发推送也可以给服务端发消息,所以你的要求就齐全了。
如果不是用第三方的向服务器报告,也可以自己写和服务器的通信。
如果推送都要自己写,那么android的推送有3种方式,第一socket长连接,比较耗费手机资源和电……第二种轮询,有一点点延迟,看你的实时性有多高……第三种,使用短信息,服务端要有短信网关,手机端则监听手机短信数据库,用这个的比较少,一般长连接比较多。
我的号码就是我qq,有什么问题可以进一步的问我,或者我没时间的话也有很多android开发群 可以介绍给你 随便问问题,有很多高人解答