zoukankan      html  css  js  c++  java
  • android开机自启动

    原理,在收到系统开机广播后,启动一个透明的activity,在activity里面启动一个服务。

    关键代码如下:

    1、开机广播接受者

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    public class BootReceiver extends BroadcastReceiver {
        public void onReceive(Context context, Intent intent) {
     
            if (intent.getAction().equals(android.intent.action.BOOT_COMPLETED)) {
                Log.d(BootReceiver, system boot completed);
     
                // context, AutoRun.class
                Intent newIntent = new Intent(context, AutoRun.class);
     
                /* MyActivity action defined in AndroidManifest.xml */
                newIntent.setAction(android.intent.action.MAIN);
     
                /* MyActivity category defined in AndroidManifest.xml */
                newIntent.addCategory(android.intent.category.LAUNCHER);
     
                /*
                 * If activity is not launched in Activity environment, this flag is
                 * mandatory to set
                 */
                newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
     
                /* if you want to start a service, follow below method */
                context.startActivity(newIntent);
                 
            }
        }
    }



    2、开机启动的activty透明

    1
     
    1
     
    
    
    
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public class AutoRun extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
             //去除title      
            requestWindowFeature(Window.FEATURE_NO_TITLE);      
            //去掉Activity上面的状态栏   
            getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN , WindowManager.LayoutParams.FLAG_FULLSCREEN);
            setContentView(R.layout.main);
            Log.i(开机启动,开机启动);
            startService(new Intent(this,EndClientService.class));
            finish();
             
        }
    }



    3、开机启动的服务

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    public class EndClientService extends Service {
        private Intent intent2=null;
        public EndClientService() {
            // TODO Auto-generated constructor stub
        }
     
        @Override
        public void onCreate() {
            // TODO Auto-generated method stub
            super.onCreate();
            Log.i(开机服务,服务开启);
            IntentFilter filter=new IntentFilter();
            filter.addAction(android.provider.Telephony.SMS_RECEIVED);
            filter.setPriority(Integer.MAX_VALUE);
            registerReceiver(mReceiver, filter);
             
             
        }
        @Override
        public int onStartCommand(Intent intent, int flags, int startId) {
            Log.i(服务,服务运行中);
            return super.onStartCommand(intent, flags, startId);
        }
        @Override
        public void onDestroy() {
            // TODO Auto-generated method stub
            super.onDestroy();
            unregisterReceiver(mReceiver);
            mReceiver=null;
        }
        @Override
        public IBinder onBind(Intent intent) {
            // TODO Auto-generated method stub
            return null;
        }
    1
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
    1
    2
    3
    4
    5
    6
    7
    <receiver android:label="@string/app_name" android:name="com.yqq.endClient3.BootReceiver">
                <intent-filter android:priority="1000">
                     
     
                    <category android:name="android.intent.category.LAUNCHER">
                </category></action></intent-filter>
            </receiver>
     

    推推族,免费得门票,游景区:www.tuituizu.com

    结伴旅游,一个免费的交友网站:www.jieberu.com

  • 相关阅读:
    一个奇怪的网页bug 竟然是局域网DNS搞的鬼
    繁体系统下如何快速将简体安装文件乱码恢复正常?
    Ubuntu16.04LTS国内快速源
    bitnami redmine版本由2.3.1升级至3.2.2过程
    Ubuntu1404安装gogs过程
    AJAX
    jQuery 事件解释
    安装phpMyadmi报错
    总结二
    总结
  • 原文地址:https://www.cnblogs.com/rabbit-bunny/p/4221253.html
Copyright © 2011-2022 走看看