安卓开发6-让安卓OA开机自动启动

采用BroadcastReceiver实现安卓应用开机自动启动使用KeyguardManager解除屏幕锁定。前面已经完成一个安卓OA,经过一个WebView访问一个适应手机大小的web oa,而且自动检测有消息时提醒。当用户关机后再开机可能会忘记访问OA,这样会漏掉重要的审批文件。这里采用BroadcastReceiver为安卓OA增长开机自动启动。android

 

用BroadcastReceiver实现开机自启动web

         (一)新建BroadcastReceiver类:New – class – Superclass选择为“android.content.BroadcastReceiver”—name我用“BootBroadcastReceive”。完成后BootBroadcastReceive重载onReceive方法app

      Intent intent = new Intent(arg0, MainActivity.class);布局

      intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);this

      arg0.startActivity(intent);xml

         其中arg0是onReceive第一个参数Context.blog

         (二)、在mainifest.xml定义BootBroadcastReceiverget

        <receiver android:name="BootBroadcastReceiver"> it

                            <intent-filter> io

                     <action android:name="android.intent.action.BOOT_COMPLETED"></action> 

                                     <category android:name="android.intent.category.LAUNCHER" /> 

                            </intent-filter> 

                   </receiver>

         (三)、在manifest.xml配置文件中增长权限:

         <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

 

让用户选择是否开机自动启动

 

         (一)、在AlertDialog的自定义布局里增长CheckBox,

    <CheckBox

        android:id="@+id/checkBox_boot"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="开机自动启动" /> 

 

    (二)、采用SharedPreferences保存配置

         CheckBox checkBox_boot = (CheckBox)dialogLayout.findViewById(R.id.checkBox_boot);

         SharedPreferences sharedPref =   MainActivity.this.getSharedPreferences("oaapp",Context.MODE_PRIVATE);

         Editor editor = sharedPref.edit();   

         editor.putBoolean("boot", checkBox_boot.isChecked());

         editor.commit();

        

         (三)、修改BootBroadcastReceiver的onReceive方法:

                   SharedPreferences sharedPref = arg0.getSharedPreferences("oaapp",

                                     Context.MODE_PRIVATE);

                   boolean boot = sharedPref.getBoolean("boot", true);

                   if (boot) {

                    Intent intent = new Intent(arg0, MainActivity.class);

                    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

                    arg0.startActivity(intent);

                   }

 

使用KeyguardManager解除屏幕锁定

    当开机时,若是设置了屏幕锁定,只有解除锁定才能看到启动的应用。这里再增长代码解除屏幕锁定:

    (一)、在BootBroadcastReceiver的onReceive里增长

        //解除屏幕锁定

             KeyguardManager keyguardManager = (KeyguardManager)arg0.getSystemService(arg0.KEYGUARD_SERVICE);

                KeyguardLock keyguardLock = keyguardManager.newKeyguardLock(arg0.KEYGUARD_SERVICE);                

                keyguardLock.disableKeyguard();

    (二)、在manifest.xml里增长权限

         <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />

相关文章
相关标签/搜索