2

我想制作一个应用程序,当用户解锁他/她的 Android 手机时会显示一条消息。我不知道这是否可能。

如果有人有办法做到这一点,请您指出正确的方向。

4

3 回答 3

4

只有android.intent.action.USER_PRESENT行动BroadcastReceiver足以做你需要的

于 2012-06-29T07:40:01.067 回答
3

是的,您可以通过android.intent.action.USER_PRESENT在 manifast 中注册为:

<receiver android:name=".unlockReceiver">
<intent-filter android:enabled="true" android:priority="90000" android:exported="false">
    <action android:name="android.intent.action.USER_PRESENT" />
    </intent-filter>
 </receiver>

并在 unlockReceiver 显示消息为:

public class unlockReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction() != null) {
    if( intent.getAction().equals(Intent.ACTION_USER_PRESENT)) {
       Toast msg = Toast.makeText(context,"hello User !!! :)", Toast.LENGTH_LONG);
        msg.show();
      }
    }
}
于 2012-06-29T07:29:02.720 回答
1

是的,你可以这样做

在你的清单文件中写下这个,

receiver android:name=".MyBroadCastReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />

            <category android:name="android.intent.category.HOME" />

            <action android:name="android.intent.action.SCREEN_ON" />
            <action android:name="android.intent.action.USER_PRESENT" />
        </intent-filter>
    </receiver>

而 MyBroadCastReceiver 的实现是这样的

public class MyBroadCastReceiver extends BroadcastReceiver {

    Context mContext;

    @Override
    public void onReceive(Context context, Intent intent) {
        mContext = context;
        Toast.makeText(mContext, "Phone UNLOCKED", Toast.LENGTH_LONG)
                .show();

    }

}
于 2012-06-29T07:30:23.863 回答