Android 端末の電源がシャットダウンされるときに処理を行いたい

755 views
Skip to first unread message

佐藤佑樹

unread,
Jan 22, 2018, 8:31:04 PM1/22/18
to 日本Androidの会
 端末の電源がシャットダウンされるときに、
稼働中のアプリ(開発中のもの)の処理を中断させたいです。

 中断させたい理由としては、
そのアプリによって頻繁にmicroSDに書き込みが行われているので、
microSDへの書き込み途中で端末の電源をシャットダウンさせたくないからです。 


試したこと1

①BroadcastIntentでシャットダウンの通知を受け取れるように、
ShutdownReceiverクラスを作成

②そのShutdownReceiverクラスで
if(Intent.ACTION_SHUTDOWN.equals(intent.getAction())) {}
と、分岐処理を行うためのコードを実装

③マニフェストにエントリ
<receiver android:name=".ShutdownReceiver">
< intent-filter>
< action android:name="android.intent.action.ACTION_SHUTDOWN" />
< /intent-filter>
< /receiver>

④パーミッションの追加
<uses-permission android:name="android.permission.DEVICE_POWER" />

エラー

④のパーミッションを追加する際に
「Permissions with the protection level signature or signatureOrSystem
are only granted to system apps. If an app is a regular non-system app,   it will never be able to use these permissions.」
と、使用できないといわれてしまう。



 試したこと2
addShutdownHook を実装
エラー
シャットダウンする際にaddShutdownが呼ばれない。


参考元


【BroadcastIntent】

【シャットダウンフック】


環境は以下の通りです。
Android Studio2.3.3
SDK 7.1
API 25 

宜しくお願い致します。 

Reply all
Reply to author
Forward
0 new messages