Help us understand the problem. What is going on with this article?

Android6.0(marshmallow)にOSをUpdateしたらアプリのBLE機能が動かなくなった時の対処方法

More than 5 years have passed since last update.

はじめに

社内で動かしていたちょっとした端末がAndroid5.0から6.0にいつのまにかUpdateされていて、
その上で動かしていた自作アプリがBLEの信号を受信できなくなっていたのをなおした時のメモです。

症状

  • Android5.0の時は問題なくBLE周りの機能が使えていた。
  • Android6.0にUpdateされたら動かなくなっていた
  • 下記のようなログが出ている

    BroadcastQueue﹕ Permission Denial: receiving Intent   { act=android.bluetooth.device.action.FOUND 
    

対処法

この辺に詳しく書いてあるようです。
Is Your Beacon App Ready for Android 6.0?

私の場合は、 AndroidManifest.xml

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

を追加したらなおりました。

全体のPermissionは以下のようになっています。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapp" >

    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />    ← この行を追加した

    <application ...

注意:BLEのみ必要なら余計なPermisionもあるかもしれません・・・

さいごに

それにしてもいつの間にかUpdateされるとは、、、

mokemokechicken
お気楽極楽会社員です。気ままに投稿しています。
sprocket
"Sprocket(スプロケット)は、Webサイトにおけるコンバージョン(購入・入会・資料請求・問合せ等)を増やしたい企業様向けに、自社開発のWeb接客ツールの導入及びコンバージョン改善コンサルティングを行っている会社です。 "
https://www.sprocket.bz/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away