屏幕锁定时,我收到了传入的C2DM通知.我想唤醒屏幕并使用活动在锁定屏幕顶部显示通知消息.我正在从我的C2DM BroadcastReceiver启动通知活动,如下所示:
Intent new_intent= new Intent().setClass( context, EIAlertDialog.class );
new_intent.addFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP );
new_intent.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
context.startActivity( new_intent );
Run Code Online (Sandbox Code Playgroud)
在通知Activity的onCreate方法中,我按如下方式唤醒屏幕:
PowerManager powerManager= (PowerManager)getSystemService( Context.POWER_SERVICE );
if (!powerManager.isScreenOn()) {
mWakeLock= powerManager.newWakeLock(
PowerManager.FULL_WAKE_LOCK |
PowerManager.ACQUIRE_CAUSES_WAKEUP,
"My Tag" )
mWakeLock.acquire();
}
Run Code Online (Sandbox Code Playgroud)
屏幕被唤醒,但在我解锁屏幕之前,通知活动不可见.
我意识到我可以使用下面的代码来避开锁定屏幕,但这是不可取的.我希望用户解锁手机,只要他/她有兴趣阅读/回复通知.
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
);
Run Code Online (Sandbox Code Playgroud) 我正在使用android:schemein my intent过滤器添加自定义URL ,如下所示
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="myscheme" android:host="myhost" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
我正在给手机发送一封电子邮件,内容如下:
myscheme://myhost?data=whatever
Run Code Online (Sandbox Code Playgroud)
但上面的链接显示为纯文本,即不作为链接.