DesertEagle 发表于 2011-6-30 11:15

求启发。。。

大家帮我看下这些是什么?
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

菜鸟灰过………………

爱黑武 发表于 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博客

DesertEagle 发表于 2011-7-2 13:06

ihei5.com 发表于 2011-6-30 13:25 static/image/common/back.gif
1.首先开机启动后系统会发出一个Standard Broadcast Action,名字叫android.intent.action.BOOT_COMPLETED, ...

哎 不是很懂啊 还得学习。。。。

hzmgdst 发表于 2012-8-12 11:51

菜鸟在此飘过
页: [1]
查看完整版本: 求启发。。。