开机自启动,在androidmanifest.xml中添加
<activity
android:name="com.example.startup.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
</manifest>
然后在src中添加BootReceiver.java,可以实现开机完后自动启动。
但是,屏幕是锁定的,如果我的程序是不让人看到的服务,那无所谓,但现在的程序是要给人操作的,要手动解锁屏幕才看的到,这就让人不爽了。。。。。
所以,继续修改如下:
在 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>后面
添加:
<uses-permission
android:name="android.permission.DISABLE_KEYGUARD"/>
</uses-permission>
报错,改成
<uses-permission
android:name="android.permission.RECEIVE_BOOT_COMPLETED"
android:name="android.permission.DISABLE_KEYGUARD"
</uses-permission>
还是报错,
<uses-permission
android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission
android:name="android.permission.DISABLE_KEYGUARD" />
编译成功
启动程序中添加:
KeyguardManager mKeyguardManager = (KeyguardManager)context.getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock mKeyguardLock = mKeyguardManager.newKeyguardLock("MainActivity");
mKeyguardLock.disableKeyguard();
其中:
KeyguardLock.disableKeyguard()用来解锁键盘
KeyguardLock.reenableKeyguard()用来锁键盘
注意KeyguardLock类已经过期
发现虽然可以解锁,但解锁前还是会出现android的时钟、锁屏界面,如何能够不让他出现呢
参考:http://blog.csdn.net/u010794950/article/details/26471453