11

にシェアボタンがあり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 を使用しても、画面のロックが解除されません

4

1 に答える 1