精华内容
下载资源
问答
  • android开机自动启动app

    千次阅读 2018-05-03 10:56:11
    经过多次尝试之后,终于找到了开机自动启动App的解决方法 开机后会停留在锁屏页面,且短时间内如果没有进行解锁操作,屏幕会进入休眠状态,所以启动APP时需要先唤醒屏幕和解锁屏幕 定义一个广播类...

    经过多次尝试之后,终于找到了开机自动启动App的解决方法
    开机后会停留在锁屏页面,且短时间内如果没有进行解锁操作,屏幕会进入休眠状态,所以启动APP时需要先唤醒屏幕和解锁屏幕

    定义一个广播类BootBroadcastReceiver.java

    public class BootBroadcastReceiver extends BroadcastReceiver {
        static final String ACTION = "android.intent.action.BOOT_COMPLETED";
    
        @Override
        public void onReceive(Context context, Intent intent) {
    
            //屏幕唤醒
            PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
            PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP
                    | PowerManager.SCREEN_DIM_WAKE_LOCK, "BootBroadcastReceiver");
            wl.acquire();
    
            //屏幕解锁
            KeyguardManager km = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
            KeyguardManager.KeyguardLock kl = km.newKeyguardLock("BootBroadcastReceiver");
            kl.disableKeyguard();
    
            //启动APP
            if (intent.getAction().equals(ACTION)) {
                Intent intent = new Intent(context, LaunchActivity.class);  // 要启动的Activity
                if (!(context instanceof Activity)) {
                    //如果不是在Activity中显示Activity,必须要设置FLAG_ACTIVITY_NEW_TASK标志
                    intent .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                }
                context.startActivity(intent );
            }
        }
    
    }  

    AndroidManifest.xml文件

    1.添加权限

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

    2.注册广播

    <receiver
         android:name=".receiver.BootBroadcastReceiver"
         android:enabled="true"
         android:exported="true"
         android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
         <intent-filter>
              <action android:name="android.intent.action.BOOT_COMPLETED"/>
              <action android:name="android.intent.action.QUICKBOOT_POWERON"/>
              <category android:name="android.intent.category.DEFAULT"/>
          </intent-filter>
    </receiver>

    注:intent-filter中的action要与BootBroadcastReceiver中定义的action相对应

    在解决开机自启的问题时发现了一篇文章记录了自启动失败的原因,在这里mark一下

    自启动失败的原因

    接收不到BOOT_COMPLETED广播可能的原因

    1. BOOT_COMPLETED对应的action和uses-permission(”android.permission.RECEIVE_BOOT_COMPLETED” )没有一起添加
    2. 应用安装到了sd卡内,安装在sd卡内的应用是收不到BOOT_COMPLETED广播的,可以在manifest节点下添加android:installLocation=”internalOnly”来指定只能安装在手机内存里面,也可以监听开机加载sd卡的广播,可惜有的手机是没有sd卡的
    3. 系统开启了Fast Boot模式,这种模式下系统启动并不会发送BOOT_COMPLETED广播
    4. 应用程序安装后重来没有启动过,这种情况下应用程序接收不到任何广播,包括BOOT_COMPLETED、ACTION_PACKAGE_ADDED、CONNECTIVITY_ACTION等等
    5. Android3.1之后,系统为了加强了安全性控制,应用程序安装后或是(设置)应用管理中被强制关闭后处于stopped状态,在这种状态下接收不到任何广播,除非广播带有FLAG_INCLUDE_STOPPED_PACKAGES标志,而默认所有系统广播都是FLAG_EXCLUDE_STOPPED_PACKAGES的,所以就没法通过系统广播自启动了。所以Android3.1之后
      (1)、应用程序无法在安装后自己启动
      (2)、没有ui的程序必须通过其他应用激活才能启动,如它的Activity、Service、Content Provider被其他应用调用。
    6. 存在一种例外,就是应用程序被adb push you.apk /system/app/下是会自动启动的,不处于stopped状态
    展开全文
  • Android APP:开机自动启动app demo 源码 Android启动完成会发出一个系统广播 ACTION_BOOT_COMPLETED,字符串常量表示为 “android.intent.action.BOOT_COMPLETED”,我们要做的是用BroadcastReceiver接收这个消息...
  • Android安卓app 让程序开机自动运行APP.zip
  • 安卓后台保活服务service,自动重启APP
  • android demo,异常捕获或自动重启app的源代码实现。
  • Android 开机自动重启App代码

    千次阅读 2016-11-24 15:54:38
    如果在手机上,需要在设置里设置允许开机自动启动。 如果在其它手持设备上,如PDA,可直接使用(如不行,则需要去设置里看看)。 在红米note2和手持PDA中测试可行。 第一需要手动启动App。 写个重启方法类: ...

    如果在手机上,需要在设置里设置允许开机自动启动。

    如果在其它手持设备上,如PDA,可直接使用(如不行,则需要去设置里看看)。

    在红米note2和手持PDA中测试可行。

    第一需要手动启动下App。

    写个重启方法类:

    package com.agenopen.other;
    
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    
    import com.agenopen.MainActivity;
    
    /**
     * Created by Panda on 2016-11-24.
     * App开机自动启动方法类
     */
    
    public class AutoOpen extends BroadcastReceiver {
        //重写onReceive方法
        @Override
        public void onReceive(Context context, Intent intent) {
            //MainActivity.class为开机自动启动App后所要显示的
            Intent i = new Intent(context, MainActivity.class);
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            //context.startService(i);
            context.startActivity(i);
        }
    }
    

    AndroidManifest.xml内添加权限

     <!--开机自动重启权限-->
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    AndroidManifest.xml内添加

    <receiver android:enabled="true" android:name=".other.AutoOpen"
    
                android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
    
                <intent-filter>
    
                    <action android:name="android.intent.action.BOOT_COMPLETED" />
    
                    <category android:name="android.intent.category.DEFAULT" />
    
                </intent-filter>
    
            </receiver>

    AndroidManifest.xml添加完后

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.agenopen">
    
        <!--开机自动重启权限-->
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    
            <receiver android:enabled="true" android:name=".other.AutoOpen"
    
                android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
    
                <intent-filter>
    
                    <action android:name="android.intent.action.BOOT_COMPLETED" />
    
                    <category android:name="android.intent.category.DEFAULT" />
    
                </intent-filter>
    
            </receiver>
        </application>
    
    </manifest>



    展开全文
  • Android实现开机自动启动APP

    千次阅读 2017-03-08 11:22:13
    Android实现开机自动启动APP我们在开发的过程中,可能都会遇到要求开机自动启动一个APP这样的需求,于是就有了本文,看下文↓1.添加权限<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED...

    飞哥语录:努力让自己发光,发热,你是最闪耀的星。

    我们在开发的过程中,可能都会遇到要求开机自动启动一个APP这样的需求,于是就有了本文,看下文↓

    1.添加权限

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

    2.创建一个广播接收器对象,重写其抽象方法 onReceive(Context context, Intent intent),在其中编写你想要启动的Service、Activity或者APP

    public class BootBroadcastReceiver extends BroadcastReceiver {
        static final String ACTION = "android.intent.action.BOOT_COMPLETED";
    
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(ACTION)) {
                Intent intent = new Intent(context, MainActivity.class);  // 要启动的Activity  
                //1.如果自启动APP,参数为需要自动启动的应用包名 
       			//Intent intent = getPackageManager().getLaunchIntentForPackage(packageName); 
     			//下面这句话必须加上才能开机自动运行app的界面  
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    			//2.如果自启动Activity
                //context.startActivity(intent);
    			//3.如果自启动服务
    			context.startService(intent);
            }
        }
    }
    

    3.在AndroidManifest.xml文件中静态注册广播接收器,然后配置系统开机的intent-filter

         		<receiver android:name="BootBroadcastReceiver">  
                    <intent-filter>  
                        <action android:name="android.intent.action.BOOT_COMPLETED"></action>  
                        <category android:name="android.intent.category.LAUNCHER" />  
                    </intent-filter>  
                </receiver>
    

    ok,很so easy 吧,一切都搞定了,赶快重启一下手机去体验吧。

    展开全文
  • Android APP:开机自动启动app demo 源码 一、Android启动完成会发出一个系统广播 ACTION_BOOT_COMPLETED,字符串常量表示为 “android.intent.action.BOOT_COMPLETED”,我们要做的是用BroadcastReceiver接收...

                 Android APP:开机自动启动app demo 源码

     

     

    一、Android启动完成会发出一个系统广播 ACTION_BOOT_COMPLETED,字符串常量表示为 “android.intent.action.BOOT_COMPLETED”,我们要做的是用BroadcastReceiver接收这个消息然后启动该程序。

     

    二、android studio 源码:

         1、autorundemo\app\src\main\java\com\example\autorundemo\MainActivity.java

    package com.example.autorundemo;
    
    import androidx.appcompat.app.AppCompatActivity;
    import androidx.core.app.NotificationCompat;
    
    import android.app.ActivityManager;
    import android.app.AlertDialog;
    import android.app.NotificationChannel;
    import android.app.NotificationManager;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.graphics.BitmapFactory;
    import android.os.Build;
    import android.os.Bundle;
    import android.widget.Toast;
    
    import java.util.List;
    public class MainActivity extends AppCompatActivity {
        MyReceiver receiver ;
        IntentFilter intentFilter;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
           // moveTaskToBack(true);
            setContentView(R.layout.activity_main);
            receiver = new MyReceiver();
            intentFilter = new IntentFilter();
            intentFilter.addAction("android.intent.action.rotationscreen");
            registerReceiver(receiver,intentFilter);
           // moveTaskToBack(true);
        }
        public void HintDialog() {
         /*
            // 创建对话框对象
            AlertDialog alertDialog = new AlertDialog.Builder(this).create();
    
            // 设置对话框的标题
            alertDialog.setTitle("这是一个消息对话框");
            // 设置对话框中的内容
            alertDialog.setMessage("消息");
            // 显示对话框
            alertDialog.show();
            */        AlertDialog.Builder alertdialogbuilder = new AlertDialog.Builder(this);
            alertdialogbuilder.setMessage("moveTaskToBack?");
            alertdialogbuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    moveTaskToBack(true);
                }
            });
    
            alertdialogbuilder.setNeutralButton("CANCEL", null);
            final AlertDialog alertdialog1 = alertdialogbuilder.create();
            alertdialog1.show();
        }
     private void bring2Front()
        {
            ActivityManager activtyManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
            List<ActivityManager.RunningTaskInfo> runningTaskInfos = activtyManager.getRunningTasks(3);
            for (ActivityManager.RunningTaskInfo runningTaskInfo : runningTaskInfos)
            {
                if (this.getPackageName().equals(runningTaskInfo.topActivity.getPackageName()))
                {
                    activtyManager.moveTaskToFront(runningTaskInfo.id, ActivityManager.MOVE_TASK_WITH_HOME);
                    return;
                }
            }
        }
    
        public class MyReceiver extends BroadcastReceiver {
            @Override
            public void onReceive(Context context, Intent intent) {
                Toast.makeText(MainActivity.this,"receive a broadcast message android.intent.action.rotationscreen!",Toast.LENGTH_SHORT).show();
                HintDialog();
              //  moveTaskToBack(false);
                bring2Front();
            }
        }
    
    }

         2、autorundemo\app\src\main\java\com\example\autorundemo\BootReceiver.java

    package com.example.autorundemo;
    
    
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    
    public class BootReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            if(intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {     // boot
                Intent intent2 = new Intent(context, MainActivity.class);
    //          intent2.setAction("android.intent.action.MAIN");
    //          intent2.addCategory("android.intent.category.LAUNCHER");
                intent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(intent2);
            }
        }
    }
    

      3、autorundemo\app\src\main\res\layout\activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:orientation="vertical">
            <LinearLayout
            android:layout_width="300dp"
            android:layout_height="150dp"
            android:background="#49D5E7"
            >
    
            <TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:textSize="20dp"
                android:textColor="#CF1C1C"
                android:text="auto run demo" />
        </LinearLayout>
    
    </LinearLayout>

       4、autorundemo\app\src\main\AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.autorundemo">
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/Transparent">
            <activity android:name=".MainActivity">
     <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" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </receiver>
    
        </application>
        <uses-permission android:name="android.permission.REORDER_TASKS" />
    </manifest>

     

    三、demo运行效果,开机自启动,背景透明,然后接受到广播(这里我用adb模拟发送广播)后让应用跑到前台运行并且弹出一个对话框可以选择是否切换到后台运行。

    四、源码下载路径:

    https://download.csdn.net/download/qq_37858386/12529475

    展开全文
  • Android开机自动启动APP

    万次阅读 2016-10-28 20:11:15
    1.要让app在开机之后自动启动,故需要去接收一个开机的广播;所以app首先需要去注册一个关于接送开机启动的广播(android.intent.action.BOOT_COMPLETED);而且必须要注意的一点是:这个广播必须的静态注册的,不能...
  • 当应用发现app启动的时候会出现问题,但是需要手动测试很多次才可以复现的问题,可以考虑写一个自动化测试脚本。 二、Android启动和关闭app命令 1、启动应用需要知道应用的包名和main activity类名 adb shell am ...
  • Android开机自动启动app

    2021-03-22 23:54:37
    uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 注册静态广播接收器: <receiver android:name=".MainActivity$MyBroadcastReceiver"> <intent-filter> <...
  • 直播电商软件开发,Android的开机自动启动App功能实现的相关代码 首先在AndroidManifest.xml中注册一个广播和添加权限 <!-- App自启动所需权限 --> <uses-permission android:name="android.permission....
  • android崩溃时的异常获取,以及崩溃自动重启app的demo案例,分享给大家!
  • /** * Created by zhaomeng on ... * 实现开机可以自动打开软件-----发送广播 */ public class BootBroadcastReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent int
  • AS以前默认都是安装完APP之后自动打开APP的,现在每次安装完成之后都要手动点开比较麻烦,是不是我在哪里设置搞错...AS报错不能启动APP![图片说明](https://img-ask.csdn.net/upload/201703/10/1489077275_556518.png)
  • android 开机自动启动某个APP运行界面

    千次阅读 2016-09-27 11:32:27
    android 开机自动启动某个APP运行界面 加入开机广播自动打开APPP<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
  • android app崩溃后自动重启

    万次阅读 2017-07-05 13:51:49
    1.偶然发现项目因为一场崩溃后,自动重启到上一界面。因为未知原因,重启后fragment显示有误,需要杀死进程后才能正常适应app。悲剧的是,因为马上就重启进程 了,导致LOG中看不到异常原因。非常不好调试。 2.经过查...
  • 主要介绍了Android实现开机自动启动Service或app的方法,结合实例形式分析了Android开机自启动程序的具体步骤与相关实现技巧,需要的朋友可以参考下
  • Android自动下载更新app

    2018-08-22 14:01:51
    Android中在app启动的时候检测是否有版本更新,如果有,则自动下载apk,并完成安装,然后删除apk,以实现自动更新app
  • 1、当前比较成熟一点的应用基本上都会在进入应用之显示一个启动界面 如腾讯微博 2、准备元素  需要开机启动的图片一张 3、新建Activity AlphaAnimation动画:控制对象alpha水平的动画。这个动画可以通过改变...
  • 开机自动启动app

    2017-07-04 10:46:56
    uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED">uses-permission> 2、注册静态广播   receiver android:name=".broadcast.BootUpReceiver"> intent-filter android:
  • 第一步,注册升级App程序广播 <...-- App安装完成接收广播 --> <receiver android:name=".broadcast.UpdateReceiver" android:enabled="true"> <intent-filter android:prio...
  • 要让app在开机之后自动启动,故需要去接收一个开机的广播;所以app首先需要去注册一个关于接送开机启动的广播(android.intent.action.BOOT_COMPLETED);而且必须要注意的一点是:这个广播必须的静态注册的,不能是...
  • android开机自动启动指定app

    千次阅读 2019-08-04 18:55:40
    说明:使用此配置的app当时针对的是android对讲机,系统4.4左右,和全屏android手机在外观系统上都有一些小区别 1. 在Manifest.xml中的入口Activity中增加<intent-filter> <intent-filter> <...
  • 制作android安卓开机启动app.zip

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 105,893
精华内容 42,357
关键字:

安卓自动重启app