递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 6026|回复: 6
打印 上一主题 下一主题

哪位大佬写个开机自启的例程

 关闭 [复制链接]

11

主题

74

帖子

919

积分

高级会员

Rank: 4

积分
919
跳转到指定楼层
楼主
发表于 2019-6-24 20:52:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 434673799 于 2019-6-26 17:34 编辑

哪位大佬写个开机自启的例程不会写 想学习一下  谢谢大佬 不管能不能实现  
找的java代码有大佬可以翻译火山吗
在安卓中,想要实现app开机自动启动,需要实现拦截广播android.permission.RECEIVE_BOOT_COMPLETED,并且需要使用静态zc广播的方法(即在AndroidManifest.xml文件中定义广播)

1、先在AndroidManifest.xml文件中定义广播和声明权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
<receiver
            android:name=".MyReceiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter android:priority="1000">
                <action android:name="android.intent.action.BOOT_COMPLETED"></action>
            </intent-filter>
</receiver>

上面的MyReceiver是我自己写的类,继承了BroadcastReceiver的,代码如下:
public class MyReceiver extends BroadcastReceiver
{
    public MyReceiver()
    {
    }

    @Override
    public void onReceive(Context context, Intent intent)
    {
        if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED"))
        {
            Intent i = new Intent(context, MainActivity.class);
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);
        }
    }
}
上面的 i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 非常重要,如果缺少的话,程序将在启动时报错



2、以下是MainActivity类的代码           
public class MainActivity extends ActionBarActivity
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Toast.makeText(this, "哈哈,我成功启动了!", Toast.LENGTH_LONG).show();
        Log.e("AutoRun","哈哈,我成功启动了!");
    }
}


3、安装app到手机上,然后启动一次程序(据说安卓4.0以后,必须先启动一次程序才能接收到开机完成的广播,目的是防止恶意程序)


4、重启手机,测试app有没有自动启动。如果有,那么恭喜你。如果没有,请往下看。
如果按照上面的全部步骤后操作后,重启没有自动启动程序,怎么办呢?是怎么回事呢?那么首先请检查一下你的手机是不是安装了360之类的安全软件,如果有,请在软件的自启动软件管理中将app设置为【允许】(我的手机没有安装这些软件,但是系统设置里面自带了自启动软件管理的功能 ,所以我在这里将我的app设置为【允许开机启动】),重启手机,测试是否成功。如果还是失败,那么请检查你的手机是不是设置了app安装首选位置是sd卡,据说安装到sd卡的话,因为手机启动成功后(发送了启动完成的广播后)才加载sd卡,所以app接收不到广播。如果是的话,把app安装到内部存储试试。如果不懂得设置的话,那么直接在AndroidManifest.xml文件中设置安装路径,android:installLocation="internalOnly"。比如:
<manifest
    package="cn.weixq.autorun"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:installLocation="internalOnly">

回复

使用道具 举报

444

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
40557
沙发
发表于 2019-6-25 09:33:42 | 只看该作者
文件--打开---例程解决方案。
下面的就是了,增加一个属性。

现在的手机已经无法实现开机自启了。






安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

11

主题

74

帖子

919

积分

高级会员

Rank: 4

积分
919
板凳
 楼主| 发表于 2019-6-25 17:22:03 | 只看该作者
创世魂 发表于 2019-6-25 09:33
文件--打开---例程解决方案。
下面的就是了,增加一个属性。

大佬这个我看到了怎么写呢 怎么去启动APP呢?
回复

使用道具 举报

444

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
40557
地板
发表于 2019-6-27 10:59:48 | 只看该作者
本帖最后由 创世魂 于 2019-7-1 10:19 编辑

开机启动源码直接给你了,但是现在根本无法实现开机启动……
已经修复无法编译的bug

开机启动源码.zip

18.64 KB, 下载次数: 74

安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

444

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
40557
5#
发表于 2019-6-27 11:00:03 | 只看该作者
本帖结贴,如有其他疑问,请重新发帖提问,
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

11

主题

74

帖子

919

积分

高级会员

Rank: 4

积分
919
6#
 楼主| 发表于 2019-6-28 18:29:40 | 只看该作者
创世魂 发表于 2019-6-27 10:59
开机启动源码直接给你了,但是现在根本无法实现开机启动……

大佬这是什么情况
应用程序.取程序 ().载入窗口 (启动类)

回复

使用道具 举报

444

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
40557
7#
发表于 2019-7-1 10:17:13 | 只看该作者
改成这个:   载入窗口 ((安卓非窗口环境)环境对象, 启动类)
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-26 04:42 , Processed in 0.093295 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表