goToSleepの設定方法

1,542 views
Skip to first unread message

goki

unread,
Jan 17, 2012, 11:32:02 PM1/17/12
to 日本Androidの会
お疲れ様です。gokiです。

今、goToSleepを使用とがんばっているのですが、使用できません。

<uses-permission android:name="android.permission.DEVICE_POWER" />
をマニフェストに登録して電源関係の許可をしています。

ソースは以下です。

--
PowerManager pm = (PowerManager)getSystemService(POWER_SERVICE);
pm.goToSleep(SystemClock.uptimeMillis());
--

また、goToSleepの引数がいまいちわからなかったので、この値にしています。

このとき、アプリを起動すると、

01-18 04:06:04.810: ERROR/AndroidRuntime(828):
java.lang.SecurityException: Neither user 10037 nor current process
has android.permission.DEVICE_POWER.

と出てしまい、DEVICE_POWERが許可されていないようです。

どのようにしたらgoToSleepを使用できるようになるのでしょうか?
よろしくお願いします。

Makoto Yamazaki

unread,
Jan 18, 2012, 1:34:44 AM1/18/12
to android-g...@googlegroups.com
zaki です。

master のソースしか見てないですが、 frameworks/base/core/res/AndroidManifest.xml を見ると
android.permission.DEVICE_POWER の protectionLevel は signature なので、システムと
同じ証明書でアプリに署名することが必要だ思います。


2012/1/18 goki <goki...@gmail.com>:

> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>

--
YAMAZAKI Makoto

goki

unread,
Jan 18, 2012, 3:00:11 AM1/18/12
to 日本Androidの会
お疲れ様です。gokiです。

>zakiさん
回答ありがとうございます。

署名に関して、いろいろ調べていたのですが、逆にセキュリティを下げるほうが楽
という記述を発見したので、セキュリティレベルを下げて、デバッグ用ですが署名を不要にしたいと思います。

しかし、そこでまた別の問題がでてしまったのですが、
frameworks/base/core/res/AndroidManifest.xml
というファイルがPC全検索をしても見つからなかったのです。

これは別途ダウンロードなどしなければいけないのでしょうか?
もしくは、eclipseのファイルの中、sdkのファイルの中、jdkのファイルの中など、どこかにあるのでしょうか?

初歩的な質問化と思いますが
よろしくお願いします。


On 1月18日, 午後3:34, Makoto Yamazaki <makoto1...@gmail.com> wrote:
> zaki です。
>
> master のソースしか見てないですが、 frameworks/base/core/res/AndroidManifest.xml を見ると
> android.permission.DEVICE_POWER の protectionLevel は signature なので、システムと
> 同じ証明書でアプリに署名することが必要だ思います。
>
> 2012/1/18 goki <gokit...@gmail.com>:

Makoto Yamazaki

unread,
Jan 18, 2012, 3:31:33 AM1/18/12
to android-g...@googlegroups.com
zaki です。

Android自体のソースコードの中にあります。ダウンロード方法は以下のページにあります。
http://source.android.com/source/downloading.html

たぶん正しく伝わってないと思うので書きますが、このAPIを使うには、端末メーカーが
システムの署名に使っている鍵にアクセスすることができるか(通常は不可能)、
独自に Android OS をビルドして端末のROMを書き換えるようなことをする必要が
あるということです。

市販の端末で使いたいということであれば「無理」ということです。


2012/1/18 goki <goki...@gmail.com>:

goki

unread,
Jan 18, 2012, 7:04:43 PM1/18/12
to 日本Androidの会
お疲れ様です。gokiです。

>zakiさん
回答ありがとうございます。
返信が遅れてしまい申し訳ありません。

ソースコードのDL法ありがとうございます。
昨日のその後、ずっと調べていたのですが、やはり普通では無理ということですか。

プリインストールのアプリ開発に使用する予定になっているので
システム署名の件を上に伝えたいと思います。
ありがとうございました。


ちなみに、何度も質問を返してしまって申し訳ないのですが、
eclipseのエミュレータの署名を使用してエミュレータ上で実験的に行う
ということはできるのでしょうか?


On 1月18日, 午後5:31, Makoto Yamazaki <makoto1...@gmail.com> wrote:
> zaki です。
>
> Android自体のソースコードの中にあります。ダウンロード方法は以下のページにあります。http://source.android.com/source/downloading.html
>
> たぶん正しく伝わってないと思うので書きますが、このAPIを使うには、端末メーカーが
> システムの署名に使っている鍵にアクセスすることができるか(通常は不可能)、
> 独自に Android OS をビルドして端末のROMを書き換えるようなことをする必要が
> あるということです。
>
> 市販の端末で使いたいということであれば「無理」ということです。
>
> 2012/1/18 goki <gokit...@gmail.com>:

Makoto Yamazaki

unread,
Jan 18, 2012, 8:41:31 PM1/18/12
to android-g...@googlegroups.com
zaki です。

> ちなみに、何度も質問を返してしまって申し訳ないのですが、
> eclipseのエミュレータの署名を使用してエミュレータ上で実験的に行う
> ということはできるのでしょうか?

これは今までやろうと思ったことが無いのでわからないです。
エミュレータのロムイメージを作った時の証明書(と秘密鍵)があれば
技術的には出来るはずです。

--
YAMAZAKI Makoto

goki

unread,
Jan 18, 2012, 8:48:17 PM1/18/12
to 日本Androidの会
お疲れ様です。gokiです。

>zakiさん
何度も回答ありがとうございます。

技術的にはできるはず、ということなので
自分の調べ方が悪かったのかな?
エミュの証明書などのことについてさらに調べようと思います。

ありがとうございました。

Tad

unread,
Jan 21, 2012, 7:13:35 AM1/21/12
to 日本Androidの会
お疲れ様です。Tadと申します。

2.2以降であれば
android.app.admin.DevicePolicyManager#lockNow()
が使用できるかと思います。
ただし、デバイス管理者権限を取得する必要がありますので、
DeviceAdminReceiverを実装してユーザに権限を設定してもらう必要があります。
Reply all
Reply to author
Forward
0 new messages