如何在Android中打开屏幕时打开我的应用程序

时间:2013-07-30 19:15:19

标签: android broadcastreceiver

当我打开我的screnn时,我想打开我的应用程序。 它是密码应用程序,我希望每次screnn打开应用程序都会询问密码。

我制作了应用程序所需的所有代码,但它无法正常运行且应用程序无法打开。 我使用了RECEIVE_BOOT_COMPLETED:

<user-permission android:name="android.intent.category.RECEIVE_BOOT_COMPLETED" />
<application
  ...
   <receiver
      android:name="com.test.receiver"
      android:enabled="true" >
      <intent-filter>
         <action android:name="android.intent.action.SCREEN_ON" />
         <action android:name="android.intent.action.BOOT_COMPLETED" />
      </intent-filter>
   </receiver>
</application>

这是java部分:

public class receiver extends BroadcastReceiver
{
   @Override
   public void onReceive(Context context, Intent intent)
   {
      intent = new Intent(context, MainActivity.class);
      startActivity(intent); // context.startActivity(intent); does not work too
   }
}

如果有人能帮助我,我会很高兴,如果有人能说我怎么取消我的主页按钮我将会非常感谢:)

1 个答案:

答案 0 :(得分:1)

其他SO帖子建议您需要使用此代码将您的应用显示在锁定屏幕上方;

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON|
    WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD|
    WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED|
    WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

Android activity over default lock screen


更多SO帖子建议您需要执行此类操作,以便您可以使用您的应用程序解锁手机;

许可:<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>

mKeyGuardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
    mLock = mKeyGuardManager.newKeyguardLock("activity_classname");
    mLock.disableKeyguard();

Lock the android device programmatically(有人说方法已过时,但docs似乎不同意)