收藏 分享(赏)

Android小程序——开机自动运行程序.doc

上传人:kpmy5893 文档编号:9364707 上传时间:2019-08-03 格式:DOC 页数:25 大小:243.50KB
下载 相关 举报
Android小程序——开机自动运行程序.doc_第1页
第1页 / 共25页
Android小程序——开机自动运行程序.doc_第2页
第2页 / 共25页
Android小程序——开机自动运行程序.doc_第3页
第3页 / 共25页
Android小程序——开机自动运行程序.doc_第4页
第4页 / 共25页
Android小程序——开机自动运行程序.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、 3。用 Intent 调用系统中经常被用到的组件此常用组件部分来源于(http:/ )1 ,web 浏览器Uri uri = Uri. parse ( “http:/“ );returnIt = new Intent (Intent . ACTION_VIEW , uri );6,安装Uri installUri = Uri. fromParts ( “package“ , “ xxx “ , null );returnIt = new Intent (Intent . ACTION_PACKAGE_ADDED , installUri);给系统发送一个 intent,调用系统的程序安装器就

2、可以安装了运行的话也是发一个 intent,制定软件的包名就可以启动了 那如果要检测是否已经安装了某个指定的软件如果制定的包名不存在,就会返回错误的值的就知道有没有安装了 String fileName = “/sdcard/tmp.apk“; Intent i = new Intent(); i.setAction(Intent.ACTION_VIEW); i.setDataAndType(Uri.fromFile(new File(fileName) ), “application/vnd.android.package-archive“); startActivity(i); 怎样让一个

3、 Service 开机自动启动 AndroidManifest.xml 配置文件: Java 代码 main.xml 布局文件: Java 代码 IaiaiActivity.java 类: Java 代码 package com.iaiai.activity; import android.app.Activity; import android.content.ComponentName; import android.content.Intent; import android.content.ServiceConnection; import android.os.Bundle; imp

4、ort android.os.IBinder; /* * * * Title: IaiaiActivity.java * * * E-Mail: * * * QQ: 176291935 * * * Http: * * * Create time: 2011-6-26 * * * author 丸子 * version 0.0.1 */ public class IaiaiActivity extends Activity private IaiaiService iaiaiService; Override public void onCreate(Bundle savedInstance

5、State) super.onCreate(savedInstanceState); setContentView(R.layout.main); Intent intent = new Intent(this, IaiaiService.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startService(intent); stopService(intent); private ServiceConnection serviecConnection = new ServiceConnection() public void

6、 onServiceConnected(ComponentName classname, IBinder service) iaiaiService = (IaiaiService.IaiaiBinder) (service).getService(); public void onServiceDisconnected(ComponentName classname) iaiaiService = null; ; IaiaiService.java 类: Java 代码 package com.iaiai.activity; import android.app.Service; impor

7、t android.content.Intent; import android.os.Binder; import android.os.IBinder; import android.util.Log; /* * * * Title: IaiaiService.java * * * E-Mail: * * * QQ: 176291935 * * * Http: * * * Create time: 2011-6-27 * * * author 丸子 * version 0.0.1 */ public class IaiaiService extends Service Override

8、 public IBinder onBind(Intent intent) Log.i(“*“, “onBind“); return null; Override public void onCreate() Log.i(“*“, “onCreate“); Override public void onDestroy() Log.i(“*“, “onDestroy“); Override public void onStart(Intent intent, int startId) Log.i(“*“, “onStart“); Override public boolean onUnbind(

9、Intent intent) Log.i(“*“, “onUnbind“); return super.onUnbind(intent); public class IaiaiBinder extends Binder public IaiaiService getService() return IaiaiService.this; IaiaiReceiver.java 类: Java 代码 package com.iaiai.activity; import android.content.BroadcastReceiver; import android.content.Context;

10、 import android.content.Intent; /* * * * Title: IaiaiReceiver.java * * * E-Mail: * * * QQ: 176291935 * * * Http: * * * Create time: 2011-6-27 * * * author 丸子 * version 0.0.1 */ public class IaiaiReceiver extends BroadcastReceiver Override public void onReceive(Context context, Intent intent) Inten

11、t serviceIntent = new Intent(context, IaiaiService.class); context.startService(serviceIntent); Intent activityIntent = new Intent(context, IaiaiActivity.class); activityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(activityIntent); 运行结果: 查看图片附件声明:ITeye 文章版权属于作者,受法律保护。没有作者书面许

12、可不得转载。 推荐链接 .Net 程序员不用羡慕 Android 程序员,微软移动战役打响 20-30万急聘多名天才 Java/MTA 软件工程师 女友学不了编程,就叫她来免费学网页、网络、平面、动漫吧!返回顶楼 hellodesigner 等级: 初级会员 性别: 文章: 6 积分: 30 来自: 上海发表时间:2011-07-01 一个开机启动的应用程序,对用户而言,有没有办法设置为开机不启动,就像360的开机加速功能一样。返回顶楼 回帖地址0 0 请登录后投票 whao189 等级: 初级会员 性别: 文章: 150 积分: 20 来自: 广州发表时间:2011-07-01 hellod

13、esigner 写道一个开机启动的应用程序,对用户而言,有没有办法设置为开机不启动,就像360的开机加速功能一样。当然可以,无非是多加了一个判断。 。 。 。但是同样的还是要先接受 开机启动这个消息,然后通过再去判断 用户设定的值 之后才能根据判断的结果 决定启不启动!系统提供了很多可以直接调用的 Activity,通过指定的 Intent 就可以调用,比如打开搜索的:Java 代码 Intent intent = new Intent(Intent.ACTION_WEB_SEARCH); intent.putExtra(SearchManager.QUERY,“searchString“)

14、startActivity(intent); Intent.ACTION_WEB_SEARCH 是一个字符串,是“搜索” 这个Activity 的标识,extra 是传给这个 activity 的一些数据。发送出这个intent 之后,系统根据 action 字符串 Intent.ACTION_WEB_SEARCH 知道了是要调用哪个 activity,如果有重名,会弹出一个选择对话框。然后打开此 activity,实现想要做的事情。那么,我们自己怎么来实现呢。首先,写一个 activity,在 AndroidManifest.xml 里面的 intent-filter中,给这个 activi

15、ty 命名,Xml 代码 然后安装。安装完毕之后,你会发现,系统中找不到这个程序。别急,它确实安装在手机里面了,但是因为他不是 main 的,所以系统不会把他当做 Application 的入口程序。而要想打开这个 activity,只有知道它名字的人才可以。跟系统的intent 一样使用。它的名字定义为“chroya.foo“,所以,这里用这个字符串就可以调用它了:Java 代码 Intent intent = new Intent(“chroya.foo“); startActivity(intent); 我用刚才举的那个系统的 intent 说明,它的 activity 里面使用getI

16、ntent().getBundleExtra(SearchManager.QUERY)来接收传递进来的搜索字符串参数。而这个 SearchManager.QUERY 是关键字。如果要自己实现这种功能,只需要定义好关键字,然后从 BundleExtra 中取就行了。Android 开机自动运行程序分类: android2011-11-02 11:07 15人阅读 评论(0) 收藏 举报有些时候,应用需要在开机时就自动运行,例如某个自动从网上更新内容的后台 service。怎样实现开机自动运行的应用?在撰写本文时,联想到高焕堂先生以“Dont call me, Ill call you back!

17、”总结 Android 框架,真是说到点子上了。理解这句话的含义,许多有关 Android 平台上实现某种功能的问题,都能迎刃而解。使用场景:手机开机后,自动运行程序,在屏幕上显示“Hello. I started!“字样。背景知识:当 Android 启动时,会发出一个系统广播,内容为 ACTION_BOOT_COMPLETED,它的字符串常量表示为 android.intent.action.BOOT_COMPLETED。只要在程序中“ 捕捉”到这个消息,再启动之即可。记住,Android 框架说:Dont call me, Ill call you back。我们要做的是做好接收这个消息

18、的准备,而实现的手段就是实现一个BroadcastReceiver。代码解析:1、界面 Activity:SayHello.javaview plaincopy to clipboard package com.ghstudio.BootStartDemo; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class SayHello extends Activity Override public void onCreate(Bundle savedIn

19、stanceState) super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setText(“Hello. I started!“); setContentView(tv); view plain package com.ghstudio.BootStartDemo; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class SayHello extends

20、Activity Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setText(“Hello. I started!“); setContentView(tv); 这段代码很简单,当 Activity 启动时,创建一个 TextView,用它显示“Hello. I started!“字样。2、接收广播消息:BootBroadcastReceiver.javaview plaincop

21、y to clipboard package com.ghstudio.BootStartDemo; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class BootBroadcastReceiver extends BroadcastReceiver static final String ACTION = “android.intent.action.BOOT_COMPLETED“; Override publi

22、c void onReceive(Context context, Intent intent) if (intent.getAction().equals(ACTION) Intent sayHelloIntent=new Intent(context,SayHello.class); sayHelloIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(sayHelloIntent); view plain package com.ghstudio.BootStartDemo; import androi

23、d.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class BootBroadcastReceiver extends BroadcastReceiver static final String ACTION = “android.intent.action.BOOT_COMPLETED“; Override public void onReceive(Context context, Intent intent) if (intent.getA

24、ction().equals(ACTION) Intent sayHelloIntent=new Intent(context,SayHello.class); sayHelloIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(sayHelloIntent); 该类派生自 BroadcastReceiver,覆载方法 onReceive 中,检测接收到的 Intent 是否符合 BOOT_COMPLETED,如果符合,则启动 SayHello 那个 Activity。3、配置文件:AndroidManif

25、est.xmlview plaincopy to clipboard view plain 注意其中粗体字那一部分,该节点向系统注册了一个 receiver,子节点 intent-filter 表示接收android.intent.action.BOOT_COMPLETED 消息。不要忘记配置 android.permission.RECEIVE_BOOT_COMPLETED权限。完成后,编译出 apk 包,安装到模拟器或手机中。关机,重新开机。运行截图:延伸思考:在多数情况下,要自动运行的不是有界面的程序,而是在后台运行的 service。此时,就要用 startService来启动相应的

26、service 了。Android Intent 的几种用法全面总结 博客分类:AndroidAndroidGoogleWebF#Intent 应该算是 Android 中特有的东西。你可以在 Intent 中指定程序要执行的动作(比如: view,edit,dial) ,以及程序执行到该动作时所需要的资料。都指定好后,只要调用 startActivity(),Android 系统会自动寻找最符合你指定要求的应用程序,并执行该程序。下面列出几种 Intent 的用法显示网页: Java 代码 Uri uri = Uri.parse(“http:/“); Intent it = new Inte

27、nt(Intent.ACTION_VIEW,uri); startActivity(it);显示地图:Uri uri = Uri.parse(“geo:38.899533,-77.036476“); Intent it = new Intent(Intent.Action_VIEW,uri); startActivity(it); 路径规划:Uri uri = Uri.parse(“http:/ Intent it = new Intent(Intent.ACTION_VIEW,URI); startActivity(it);拨打电话: 调用拨号程序Uri uri = Uri.parse(“t

28、el:xxxxxx“); Intent it = new Intent(Intent.ACTION_DIAL, uri); startActivity(it); Uri uri = Uri.parse(“tel.xxxxxx“); Intent it =new Intent(Intent.ACTION_CALL,uri); 要使用这个必须在配置文件中加入发送 SMS/MMS 调用发送短信的程序Intent it = new Intent(Intent.ACTION_VIEW); it.putExtra(“sms_body“, “The SMS text“); it.setType(“vnd.a

29、ndroid-dir/mms-sms“); startActivity(it); 发送短信Uri uri = Uri.parse(“smsto:0800000123“); Intent it = new Intent(Intent.ACTION_SENDTO, uri); it.putExtra(“sms_body“, “The SMS text“); startActivity(it); 发送彩信Uri uri = Uri.parse(“content:/media/external/images/media/23“); Intent it = new Intent(Intent.ACTIO

30、N_SEND); it.putExtra(“sms_body“, “some text“); it.putExtra(Intent.EXTRA_STREAM, uri); it.setType(“image/png“); startActivity(it); 发送 Email Uri uri = Uri.parse(“mailto:“); Intent it = new Intent(Intent.ACTION_SENDTO, uri); startActivity(it); Intent it = new Intent(Intent.ACTION_SEND); it.putExtra(Int

31、ent.EXTRA_EMAIL, ““); it.putExtra(Intent.EXTRA_TEXT, “The email body text“); it.setType(“text/plain“); startActivity(Intent.createChooser(it, “Choose Email Client“); Intent it=new Intent(Intent.ACTION_SEND); String tos=““; String ccs=““; it.putExtra(Intent.EXTRA_EMAIL, tos); it.putExtra(Intent.EXTRA

32、_CC, ccs); it.putExtra(Intent.EXTRA_TEXT, “The email body text“); it.putExtra(Intent.EXTRA_SUBJECT, “The email subject text“); it.setType(“message/rfc822“); startActivity(Intent.createChooser(it, “Choose Email Client“); 添加附件Intent it = new Intent(Intent.ACTION_SEND); it.putExtra(Intent.EXTRA_SUBJECT

33、, “The email subject text“); it.putExtra(Intent.EXTRA_STREAM, “file:/sdcard/mysong.mp3“); sendIntent.setType(“audio/mp3“); startActivity(Intent.createChooser(it, “Choose Email Client“); 播放多媒体 Intent it = new Intent(Intent.ACTION_VIEW); Uri uri = Uri.parse(“file:/sdcard/song.mp3“); it.setDataAndType(

34、uri, “audio/mp3“); startActivity(it); Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, “1“); Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it); Uninstall 程序Uri uri = Uri.fromParts(“package“, strPackageName, null); Intent it = new Intent(Intent.ACTION_DELET

35、E, uri); startActivity(it); uninstall apk Uri uninstallUri = Uri.fromParts(“package“, “xxx“, null); returnIt = new Intent(Intent.ACTION_DELETE, uninstallUri); install apk Uri installUri = Uri.fromParts(“package“, “xxx“, null); returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri); play audi

36、o Uri playUri = Uri.parse(“file:/sdcard/download/everything.mp3“); returnIt = new Intent(Intent.ACTION_VIEW, playUri); /发送附件 Intent it = new Intent(Intent.ACTION_SEND); it.putExtra(Intent.EXTRA_SUBJECT, “The email subject text“); it.putExtra(Intent.EXTRA_STREAM, “file:/sdcard/eoe.mp3“); sendIntent.s

37、etType(“audio/mp3“); startActivity(Intent.createChooser(it, “Choose Email Client“); /搜索应用 Uri uri = Uri.parse(“market:/search?q=pname:pkg_name“); Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it); /where pkg_name is the full package path for an application /显示指定应用的详细页面(这个好像不支持了,找不到

38、app_id) Uri uri = Uri.parse(“market:/details?id=app_id“); Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it); /where app_id is the application ID, find the ID /by clicking on your application on Market home /page, and notice the ID from the address bar I am using the following code s

39、nippet for searching through GoogleIntent intent = new Intent(); intent.setAction(Intent.ACTION_WEB_SEARCH); intent.putExtra(SearchManager.QUERY,“searchString“) startActivity(intent); /调用系统安装软件: Intent intent = new Intent(); intent.setDataAndType(Uri.parse(“file:/sdcard/newmopclient.apk“), “applicat

40、ion/vnd.android.package-archive“); startActivity(intent); /调用相册 public static final String MIME_TYPE_IMAGE_JPEG = “image/*“; public static final int ACTIVITY_GET_IMAGE = 0; Intent getImage = new Intent(Intent.ACTION_GET_CONTENT); getImage.addCategory(Intent.CATEGORY_OPENABLE); getImage.setType(MIME_

41、TYPE_IMAGE_JPEG); startActivityForResult(getImage, ACTIVITY_GET_IMAGE); /调用系统相机应用程序,并存储拍下来的照片 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); time = Calendar.getInstance().getTimeInMillis(); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment .getExternalStorageDirectory().getAbsolutePath()+“/tucue“, time + “.jpg“); startActivityForResult(intent, ACTIVITY_GET_CAMERA_IMAGE);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报