当Android设备开启或重启时启动Android应用程序

时间:2016-10-13 21:24:36

标签: android

我有Android应用程序及其工作良好,但现在我需要在Android设备打开时自动打开应用程序我尝试了很多解决方案,但它无法正常工作,

请问有什么想法吗?

我试过这样但没有工作

public class Bootup extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {

    if (intent.getAction().equalsIgnoreCase(Intent.ACTION_BOOT_COMPLETED)) {
    Toast.makeText(context, "Reboot completed! Starting your app!!!.", Toast.LENGTH_LONG).show();

        Intent i = new Intent(context, AutoStart.class);
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startService(i);
    }

}
}

2 个答案:

答案 0 :(得分:0)

根据以下帖子:

How to start an Application on startup?

您可能需要Receive_boot_completed权限。帖子中有两个答案,显示如何在应用启动时启动活动或服务。

答案 1 :(得分:0)

当您打开手机时,会播放一个意图。它的android.intent.action.BOOT_COMPLETED

如果您通过广播的接收器接收到该意图,那么您可以检测设备是否已打开。

广播接收器:

    public class BootReceiver extends BroadcastReceiver { 

    @Override
    public void onReceive(Context aContext, Intent aIntent) { 

            // ToDo: Whatever I need at immediately after bootstrap
            Toast.makeText(aContext, "This message phone is turned on!", Toast.LENGTH_LONG).show();
            Log.e("..BOOT_ACTION_NAME...", "This message phone is turned on!");


}}

宣言声明:

<receiver
        android:name="com.example.testing_demo.BootReceiver"
        android:enabled="true" 
        android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
        <intent-filter>
            <action android:name="android.intent.action.SCREEN_ON" />
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>

将清单代码放在应用程序标记内。