爱黑武论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2863|回复: 4

[求助] 求启发。。。

[复制链接]
发表于 2011-6-30 11:15 | 显示全部楼层 |阅读模式

立即注册,加入爱黑武论坛的大家庭!爱黑武,爱上搞机生活!

您需要 登录 才可以下载或查看,没有账号?注册

x
大家帮我看下这些是什么?
com.motorola.Camera/com.motorola.Camera.Camera 这个是启动相机
com.android.browser/com.android.browser.BrowserActivity 这个是启动浏览器
com.motorola.blur.contacts/com.motorola.blur.contacts.ViewIdentitiesFacetActivity 这个是启动联系人
com.motorola.dialer/com.motorola.dialer.DialtactsActivity 这个是启动拨号
com.android.music/com.android.music.MusicBrowserActivity 这个是启动音乐

这些不是/system/app里的,我看过
我想知道为什么这些能启动对应的程序,假如我想启动自定义的程序,那么这个接口该怎么写?
发表于 2011-6-30 12:40 | 显示全部楼层
菜鸟灰过………………[s:113]
发表于 2011-6-30 13:25 | 显示全部楼层
1.首先开机启动后系统会发出一个Standard Broadcast Action,名字叫android.intent.action.BOOT_COMPLETED,这个Action只会发出一次。

2.构造一个IntentReceiver类,重构其抽象方法onReceiveIntent(Context context, Intent intent),在其中启动你想要启动的Service。

3.在AndroidManifest.xml中,首先加入<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>来获得BOOT_COMPLETED的使用许可,然后注册前面重构的IntentReceiver类,在其<intent-filter>中加入<action android:name="android.intent.action.BOOT_COMPLETED" /> ,以使其能捕捉到这个Action。

一个例子
xml:



Java代码
1.<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>   
2.<receiver android:name=".OlympicsReceiver" android:label="@string/app_name">   
3.    <intent-filter>   
4.       <action android:name="android.intent.action.BOOT_COMPLETED" />   
5.       <category android:name="android.intent.category.LAUNCHER" />   
6.    </intent-filter>   
7.</receiver>  

java:



Java代码
1.public class OlympicsReceiver extends IntentReceiver   
2.{   
3.    /*要接收的intent源*/  
4.    static final String ACTION = "android.intent.action.BOOT_COMPLETED";   
5.           
6.    public void onReceiveIntent(Context context, Intent intent)   
7.    {   
8.        if (intent.getAction().equals(ACTION))   
9.        {   
10.                  context.startService(new Intent(context,   
11.                       OlympicsService.class), null);//启动倒计时服务   
12.             Toast.makeText(context, "OlympicsReminder service has started!", Toast.LENGTH_LONG).show();   
13.        }   
14.    }   
15.}  

注意:现在的IntentReceiver已经变为BroadcastReceiver,OnReceiveIntent为onReceive。所以java这边的代码为:



(也可以实现应用程序开机自动启动)




Java代码
1.public class OlympicsReceiver extends BroadcastReceiver   
2.{   
3.    /*要接收的intent源*/  
4.    static final String ACTION = "android.intent.action.BOOT_COMPLETED";   
5.           
6.    public void onReceive(Context context, Intent intent)   
7.    {   
8.        if (intent.getAction().equals(ACTION))   
9.        {   
10.                  context.startService(new Intent(context,   
11.                       OlympicsService.class), null);//启动倒计时服务   
12.             Toast.makeText(context, "OlympicsReminder service has started!", Toast.LENGTH_LONG).show();   
13.            //这边可以添加开机自动启动的应用程序代码   
14.        }   
15.    }   
16.}  


本文来自CSDN博客
 楼主| 发表于 2011-7-2 13:06 | 显示全部楼层
ihei5.com 发表于 2011-6-30 13:25
1.首先开机启动后系统会发出一个Standard Broadcast Action,名字叫android.intent.action.BOOT_COMPLETED, ...

哎 不是很懂啊 还得学习。。。。
发表于 2012-8-12 11:51 | 显示全部楼层
菜鸟在此飘过
回复 支持 反对

使用道具 举报

 Hello,黑武的好机友!回复想偷个懒?点这里: 
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|Archiver|手机版|爱黑武论坛 ( 京ICP备2023028323号 | 京公网安备11011202000270号 )

GMT+8, 2024-5-23 20:40 , Processed in 0.042640 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, ihei5.com

快速回复 返回顶部 返回列表