您的位置:首页 > 其它

开机就显示自己写的应用主界面

2016-12-03 14:27 288 查看
以下两种方法都试过了,可以用!

首先在清单文件添加权限:<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

然后创建一个广播类,代码如下:package com.example.administrator.newapp;

import android.content.BroadcastReceiver;

import android.content.ComponentName;

import android.content.Context;

import android.content.Intent;

import android.util.Log;

import com.example.administrator.newapp.MainActivity;

/**

 * Created by Administrator on 2016/12/1.

 */

public class LocationLoggerServiceManager extends BroadcastReceiver {

    public static final String TAG = "customTag";

    @Override

    public void onReceive(Context context, Intent intent) {

        if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {

            ComponentName comp = new ComponentName(context.getPackageName(), MainActivity.class.getName());

            context.startActivity(new Intent().setComponent(comp).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));

        } else {

            Log.e(TAG, "Received unexpected intent " + intent.toString());

        }

    }

}

第三步在清单文件写: <receiver

            android:name=".LocationLoggerServiceManager"

            android:enabled="true"

            android:exported="false"

            android:label="LocationLoggerServiceManager">

        <intent-filter>

        <action android:name="android.intent.action.BOOT_COMPLETED"/>

        </intent-filter>

        </receiver>

好了,重新开机,就可以了!

第二种方法:和第一种差不多:
https://zhidao.baidu.com/question/875702278060777652.html
首先: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);

 

 }

 

} 然后在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事件处理中添加下面代码

[java]

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” />
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: