adb shell コマンドでパーミッション権限を承認する
少しでもコーディングから離れていると、どこまでやっていたかすっかり忘れてしまっています。確か、パーミッション権限あたりをやっていたかと。。。そう言えば、adbコマンドでもパーミッション権限が確認できたはず。
・Android端末をUSBケーブルで接続するか、エミュレータを起動します。
・DOSプロンプトを起動します。
1.デバイスを確認します。
> adb devices
List of devices attached
emulator-5554 device
2.パッケージに指定したパーミッション権限を承認します。
adb shell pm grant <PACKAGE_NAME> <PERMISSION>
>adb shell pm grant com.example.myapplication_test android.permission.ACCESS_FINE_LOCATION
>
3.パッケージに指定したパーミッション権限を取り消します。
adb shell pm revoke <PACKAGE_NAME> <PERMISSION>
>adb shell pm revoke com.example.myapplication_test android.permission.ACCESS_FINE_LOCATION
>
2.と3.のパーミッションの承認と取り消しの実行結果は、愛想がなくただプロンプトが表示されるのみです。実際にパーミッション権限が変わったのか、確認するには結局、Android端末の「設定」「アプリ」「アプリ名」「許可」で確認する方法しか、ないようです。愛想がないと言うことは、必ず権限が変更できるということかもしれませんが、現状のパッケージがどのような権限になっているか、コマンドで知りたいですね。
あと、見て分かるようにパッケージ名とパーミッション名はフルに打たないと、だめです。
パッケージ名を知るには、
>adb shell pm list packages
パーミッション名を知るには、
>adb shell pm list permissions -g
結構、adbコマンドが充実しているので、いじってみるのも楽しいかも。。。
まー、ちょっと公式サイトをのぞいて見てください。
参照サイト:
Android Studio Android 端末が認識しない時の対応方法
Android Studioでデバッグする時に、USB接続しているAndroid端末が、たまに認識しない時があります。対応方法として、以下の3つくらいでしょうか。
1.USBケーブルの抜き差しとAndroid側の「設定」にある「開発者向けオプション」「USBデバッグ」を無効にして、再度有効にする。
2.adb daemonを再実行する。
デーモンと言っていますが、OSはWindows10です。コマンドプロンプトを開いて、以下のコマンドを実行。詳細は、リンクを参照してください。
> adb kill-server
> adb start-server
> adb devices
最後のコマンドでリストにデバイスが表示されたら、成功です。
3.USBケーブルを別のケーブルに変更してみる。
最近、3.のパターンが多いです。(^^;対応方法として、このケーブル変更のことを忘れてしまい、上記、2つをやってしまっています。ざっくり、USBのピンアサインとか調べたけど、電源供給用に1,4番ピン、データ用に2,3番ピンを割り当てているようです。データ線が断線しているのか、元々結線されていないのか、分かりませんが、手持ちのケーブルで接続できるケーブルより、できないケーブルが多いです。。。
Excel 書式を使用せずに西暦の年月日を和暦の年号に変換
Excelで書式を使用せずに関数を使用した西暦から和暦への変換です。
参照元のセル(A1) 参照先の計算式 参照先のセル
2014/12/28 =JIS(TEXT(A1,"ggge年")) 平成26年
2014 =JIS(TEXT(A2&"/1/1","ggge年")) 平成26年
JIS関数は、半角を全角に変換します。
TEXT関数は、数値を所定のフォーマットに変換する関数です。フォーマット中のgggeが、和暦に変更する記号です。(この書式と変わらないです)
参照元のセルが文字列になっていたりすると、関数での変換に失敗します。
p.s.
本をまとめて読んだり、眠れなかったりで、Androidの開発はちょっと休んでました。今週末は、頑張りたいと思います。
Kernel-General Power-Troubleshooter イベントID:1 対策してみた
最近、デスクトップ機がスリープ状態から突然、電源がオンする事が多くなったので、対策してみました。イベントログを確認してみると、一番最初にログに残されているのが、「システム」の以下のイベントでした。
Kernel-General イベントID:1
システム時刻は 2016-07-03T15:40:50.591945100Z から 2016-07-03T19:42:49.500000000Z に変更されました。
変更の理由: システム時刻がハードウェア クロックと同期されました。
ネットで調べると、ネットワークアダプタでスタンバイ状態から解除できるようになっているので、解除できないようにチェックを外します。
・「スタート」を右クリックして、「コントロールパネル」「ハードウェアとサウンド」「デバイスマネージャー」を選択します。
・「ネットワークアダプタ」「BroadcomNetLink(TM) Gigabit Ethernet」を選択し、「電源の管理」タブをクリックします。
・「このデバイスで、コンピュータのスタンバイ状態を解除できるようにする」のチェックを外します。
次に表示されたのが、以下のイベントで、ファイルパスとファイル名から推測すると、MediaCenterのアップデートのようです。
Power-Troubleshooter イベントID:1
システムは低電力状態から再開しました。
スリープ時間: 2016-07-03T15:40:48.531093900Z
スリープ解除時間: 2016-07-03T19:42:49.909006000Z
スリープ状態の解除元: タイマー - Windows は、スリープ状態の解除を要求したスケジュールされたタスク 'NT TASK\Microsoft\Windows\Media Center\mcupdate_scheduled' を実行します。
「スタート」「すべてのアプリ」「Windows 管理ツール」から「タスクスケジューラ」を起動します。
「Microsoft」 「Windows」「Media Center」までツリーを辿ると、mcupdate_scheduledが毎日4:43に起動に設定されています。前回の実行結果を確認すると、「指定 されたファイルが見つかりません」となっているので、削除します。
「トリガー」タブを選択し、定義を削除します。
イベントログを確認すると、今までも、スリープから電源がオンされていました。ここ最近、頻度が多かったのは、6月より固定回線を開設したので、常時ネットワークに接続されているからということで、最初の対策が正解のような気がします。後者は、無駄なタスクなので削除という位置づけです。
イベントID:513 対策してみた
暗号化サービスで、システム ライター オブジェクトで OnIdentity() の呼び出しを処理中にエラーが発生しました。
・「スタート」ボタンを右クリックして、「コマンドプロンプト(管理者)」をクリックする。
・以下を入力し、実行する。
「sc sdset MSLLDP D:(D;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BG)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SO)(A;;LCRPWP;;;S-1-5-80-3141615172-2057878085-1754447212-2405740020-3916490453)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)」
・以下が表示されたら、成功です。
[SC] SetServiceObjectSecurity SUCCESS
リブートは必要ありません。
参照サイト:
AppModel-Runtime イベントID:69 対策してみた
Windows10にアップデート後、イベントログにタイトルのエラーが表示されるようになりました。対策が米国のマイクロソフトのフォーラムサイトに載っていたので、対策してみました。簡単に内容を説明すると、先ず、リンクをクリックし、トラブルシューティングを実行する。次にWindowsストアをリセットする旨が、記載されています。
1.トラブルシューティングの実行
http://windows.microsoft.com/en-us/windows-10/run-the-troubleshooter-for-windows-apps
・「トラブルシューティング ツールを実行する」をクリックします。
・「ファイルを保存する」にチェックを入れ、「OK」をクリックし、ダウンロードします。
・ダウンロードしたファイル(Appsdiagnostic10.diagcab)をダブルクリックし、実行します。
ダウンロードしたファイルを実行するには、Microsoftアカウントが必要なので、サインインしていない方は、サインインしてください。
2.Windowsストアのリセット
・Winキー+Rキー(ファイル名を指定して実行)で、wsreset.exeを入力し、実行します。
(自動的にWindowsストアがリセットされる)
・ファイル名を指定して実行で、PowerShellを入力し、実行します。
・get-appxpackage *Microsoft.WindowsPhotos* | remove-appxpackage
*Microsoft.WindowsPhotos*の部分は、画像を参照して頂ければ分かるように、適宜変更してください。 画像では、PeopleとPhotosですが、イベントログの内容がCalculatorだったら、Photosの部分を変更します。
これを実行することにより、エラーが出ていたアプリが再インストールされます。
参照サイト:
アップデート後にやっておくべきこと
ノートPCをWindows10にアップデートしてから、1週間~10日間経過したら、やっておきたいことがあります。
1.oldファイルの削除
oldファイルを削除しましょう。私の場合、70GB弱ほど、oldファイルがあり、びっくりしました。また、今回は、アップデートの前後、oldファイル削除前後でバックアップはしていませんが、必要な方は、バックアップを取りましょう。(今後、私がバックアップを行うかは、分かりません)。
2.デフラグの解消
次に、deffraggerを使用して、ファイルのフラグメントを解消します。Cドライブでデフラグの実行前で20%、実行後で11%とかなりでフラグメンテーションが解消されました。
まず、アプリの削除、インストールが発生しているので、レジストリの中をきれいするためにCCleanerを使用して、レジストリの中をきれいにします。相当、汚かったです。
次にWindows10に付随する「デフラグ」を使用して、レジストリのデフラグを解消します。「デフラグ」を使用したからと言って、必ずしもレジストリの中 のでフラグメンテーションが解消されるわけではありません。レジストリは、データベースの一種ですので、ファイルのデフラグとレジストリキーのデフラグが 発生します。レジストリキーが削除されても、ファイルがサイズが減らず、データベースの中が歯抜け状態になるだけで、何回か繰り返す(本当は、あるアルゴ リズムでなんですが、細かいことは忘れました)内にデフラグが解消されます。
「スタート」「すべてのアプリ」「Windows 管理ツール」「ドライブのデフラグと最適化」
4.レジストリの修復
私の場合、アプリの削除中に一部のレジストリが壊れてしまったので、以下のコマンドをコマンドプロンプト(管理者)から何回か実行して、修復しました。
スタートを右クリックして、「コマンドプロンプト(管理者)」を実行します。
$ sfc /scannow
C:\Windows\Logs\CBS.logのログが出力されます。
また、上記で修復しない場合には、以下のコマンドで修復する可能性があるそうです。
$ dim.exe /online /cleanup-image /restorehealth