にシェアボタンがありGCM notification
ます。共有ボタンをクリックすると、共有インテントを起動する必要があります。すべてが完璧に機能します。私が直面している唯一の問題は、Lollipop
ロック画面機能です。ロック画面から共有ボタンをクリックすると、ロック画面の下にインテント ダイアログが表示され、ユーザーは画面のロックを解除してダイアログを表示する必要があります。共有ボタンがクリックされたときに、プログラムで画面のロックを解除したい。
Power Manager を試してみましたが、そのwakeClock
フラグはすべて非推奨でありWindowManager.LayoutParams.Flag_KEEP_SCREEN_ON
、使用することをお勧めします。しかし、ここではアクティビティを使用していません。を使用してbroadcastReciever context
います。したがって、getWindow()
メソッドを使用できません。
私も試してみましたKeyguardManager
。しかし、disableKeyguard()
廃止されました。
Intent.ACTION_SCREEN_ON
画面のロックが解除された後にアクションを実行したい場合は、これを使用する必要があるため、 を使用できません。
以下のインテントを使用して、通知トレイをプログラムで閉じました。
Intent it = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
mContext.sendBroadcast(it);
画面のロックを解除するためにブロードキャストできる同様の意図はありますか
DevicePolicyManager を使用して更新されたコード:
public static void handleShareBtnClick(Context context, String message) {
GcmHelper helper = new GcmHelper();
helper.shareMessage(context, message);
if(Utility.isLollypopAndAbove()){
helper.unlockLockScreen();
}
helper.launchShareforForAlert();
}
public void unlockLockScreen(){
DevicePolicyManager devicePolicyMngr= (DevicePolicyManager) mContext.getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName compName=new ComponentName(mContext, DeviceAdminReceiver.class);
if(!devicePolicyMngr.isAdminActive(compName))
devicePolicyMngr.removeActiveAdmin(compName);
}
DevicePolicyManager を使用しても、画面のロックが解除されません