如何为Android蓝牙设置权限。

11

我是Android开发新手。我试图在我的(rooted)手机上运行一个简单的HelloWorld应用程序,并尝试启用蓝牙。

我已经按照以下方式设置了我的清单文件中的蓝牙权限,但当我通过Eclipse在手机上运行该应用程序时,我遇到了Permission Denial异常:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.helloandroid"
          android:versionCode="1"
          android:versionName="1.0">      
        <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true" android:permission="android.permission.BLUETOOTH_ADMIN">
            <activity android:name=".HelloAndroid"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>


<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-sdk android:targetSdkVersion="7" android:minSdkVersion="5"></uses-sdk>
</manifest>

我是否忽略了一些显而易见的东西?

3个回答

3

关于在manifest.xml中为蓝牙活动包含哪些内容的答案包括:

<uses-feature android:name="android.hardware.bluetooth" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

第一、二、三个依赖关系较为重要,而且不同的情况下可能需要使用每一个依赖关系。希望这可以帮助您进行设置!

1

我不太确定这里的问题是什么。

我只能说,我重新安装了Eclipse及其插件,现在一切都正常工作了。感谢你的帮助Mayra - 因为你乐于助人和友好的态度,我会给你的答案点赞。


下次尝试将“所有事情”都逻辑化,然后重新安装,这样你的计算机技术就会得到加强。 - EugenSunic

-5
清单中的元素类型是有序的。我认为 uses-permission 需要在 标签下首先出现。

谢谢您的快速回复,Mayra。我已经尝试将uses-permission标签在文件中移动,但似乎无法解决问题 - 我看到的示例清单文件通常似乎包括在文件底部的uses-permission标签 - 所以我认为标签的位置并不关键。 - Jon Mills
好的,我认为你是对的。我之前在权限方面遇到了问题,我认为那时候已经解决了,但现在我看到文档中其他地方也存在顺序上的错误。你看到的确切错误信息是什么? - Cheryl Simon
2
被踩了,因为在SO上,我们投票赞成回答的质量。不幸的是,尽管有最好的意图,这个答案是不正确的。 - bdutta74

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接