检测设备何时开启

时间:2014-02-21 04:12:38

标签: android

我有一个应用程序,我想通过按电源按钮或主页按钮打开手机时提取新数据。

Android API中是否有检测此方法的方法?

基本用例是:

  • 用户开启设备
  • App小部件检测到手机已开机,生成要在小部件上显示的新数据。

4 个答案:

答案 0 :(得分:1)

如果您的应用未写入锁屏,则可以使用ACTION_USER_PRESENT。在用户使锁屏消失后,它会发送一个意图。

http://developer.android.com/reference/android/content/Intent.html#ACTION_USER_PRESENT

答案 1 :(得分:1)

当Android手机完成开启(启动)时,会广泛宣传:

android.intent.action.BOOT_COMPLETED

您可以在应用中处理此意图并正确完成工作。

答案 2 :(得分:1)

当Android手机完成开启(启动)时,会广泛宣传:

试试这个 BootReceiver类

public class BootReceiver extends BroadcastReceiver { 

@Override
public void onReceive(Context aContext, Intent aIntent) { 
  //  if (BOOT_ACTION_NAME.equals(intent.getAction())) {

        // 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!");
  //  }
}}

在应用程序代码

中的 manifest.xml 中添加以下类
 <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>

答案 3 :(得分:0)

嘿,你可以做的是去后台服务和广播接收器,无论你为你的应用程序小部件需要什么可行,你可以在那里处理电源按钮按键如下

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
    if(keyCode == KeyEvent.KEYCODE_POWER)
    {
//handle the code to achieve yours desired logic
    }
    return super.onKeyDown(keyCode, event);
}

也可以访问,因为它可以帮助您activate an application when a power button is clicked