如果需要在Android開機時自動啟動應用程式,可以通過響應android.intent.action.BOOT_COMPLETED廣播消息來實作, Android系統啟動結束時,會發出 android.intent.action.BOOT_COMPLETED 消息。 具體步驟如下:
1. 定義一個Broadcast Receiver ,比如:BootupReceiver
[java]
public class BootupReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
//better delay some time.
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Intent i = new Intent(context, BootupDemoActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
public class BootupReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
//better delay some time.
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Intent i = new Intent(context, BootupDemoActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
用于響應android.intent.action.BOOT_COMPLETED。
2. 在Manifest檔案中定義該Broadcast Receiver
<receiver android:name=”.BootupReceiver” android:enabled=”true”
android:permission=”android.permission.RECEIVE_BOOT_COMPLETED”>
<intent-filter>
<action android:name=”android.intent.action.BOOT_COMPLETED”></action>
<category android:name=”android.intent.category.DEFAULT” />
</intent-filter>
</receiver>
3. 加上所需權限
<uses-permission android:name=”android.permission.RECEIVE_BOOT_COMPLETED” />
這些,但手機重新開機示會自動運作你的應用。 不過此時你的應用可能會被螢幕鎖定擋住。解除螢幕鎖定後可以看到你運作的應用。
如果想使用者一開機就看到你的應用,可以使用代碼就螢幕鎖去除,方法如下:
1. 在Activity的onCreate事件進行中添加下面代碼
KeyguardManager keyguardManager
= (KeyguardManager)getSystemService(KEYGUARD_SERVICE);
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
lock.disableKeyguard();
KeyguardManager keyguardManager
= (KeyguardManager)getSystemService(KEYGUARD_SERVICE);
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
lock.disableKeyguard();
2. 在Manifest檔案中添加所需權限
<uses-permission android:name=”android.permission.DISABLE_KEYGUARD” />