gpt4 book ai didi

java - 以编程方式解锁 Android 设备并在启动时加载应用程序

转载 作者:行者123 更新时间:2023-12-02 06:18:04 25 4
gpt4 key购买 nike

目标:以编程方式解锁 Android 设备并在启动时加载应用程序

API:10 和 18

IDE:Eclipse

测试设备:模拟器

据我了解,这个问题已在 stackoverflow 和其他地方广泛讨论。但我无法让它发挥作用。我的第一个问题是

  • 能否以编程方式解锁模拟器并在启动时加载应用程序?
  • 我还了解到,API 13 之后发生了一些变化,我不确定我是否考虑了这些变化

假设答案是肯定的,请查找以下代码除外。

AndroidManifest.xml

<manifest 
package="com.example.display">


<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="18" />

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

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.display.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<receiver
android:name="com.example.display.myreceiver"
android:enabled="true"
android:exported="false" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>

MainActivity.java

package com.example.display;

import android.app.Activity;
import android.content.Context;
import android.content.res.Configuration;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager.LayoutParams;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// Unlock
// http://developer.android.com/reference/android/app/Activity.html#getWindow()
Window window = getWindow();

window.addFlags(LayoutParams.FLAG_DISMISS_KEYGUARD);
window.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED);
window.addFlags(LayoutParams.FLAG_TURN_SCREEN_ON);

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}

myreceiver.java

我期望这部分代码在启动时执行并启动应用程序。

package com.example.display;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class myreceiver extends BroadcastReceiver{

@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Intent myIntent = new Intent(context, MainActivity.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startService(myIntent);
}

}

问题:我已将上述代码加载到模拟器并重新启动模拟器。我期望代码应用程序解锁模拟器并加载启动应用程序。这不会发生...

不知道下一步该去哪里寻找...

大部分代码 fragment 来自 stackoverflow。

我引用的一些帖子是

  1. Trying to start a service on boot on Android
  2. How to launch the application upon booting up the device?
  3. Android - Wake Up and Unlock Device

提前谢谢您。

最佳答案

您好,我以编程方式添加了解锁,并使用以下代码启动我们的应用程序。您需要在广播接收器中添加解锁代码。请尝试让我。谢谢

import android.app.KeyguardManager;
import android.app.KeyguardManager.KeyguardLock;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.PowerManager;

public class myreceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub

// Unlock the screen
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK
| PowerManager.ACQUIRE_CAUSES_WAKEUP
| PowerManager.ON_AFTER_RELEASE, "INFO");
wl.acquire();

KeyguardManager km = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock kl = km.newKeyguardLock("name");
kl.disableKeyguard();

Intent myIntent = new Intent(context, MainActivity.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startService(myIntent);
}
}

关于java - 以编程方式解锁 Android 设备并在启动时加载应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21273305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com