首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.lang.SecurityException:在android级别23中不允许启动服务意图错误

java.lang.SecurityException:在android级别23中不允许启动服务意图错误
EN

Stack Overflow用户
提问于 2016-06-08 21:20:39
回答 1查看 549关注 0票数 0

我在智能卡读取器应用程序中使用服务,但在Android5.0及以上版本中出现了一个错误

代码语言:javascript
复制
W/System.err: java.lang.SecurityException: 
Not allowed to start service Intent { 
act=com.theobroma.cardreadermanager.backendipc
 pkg=com.theobroma.cardreadermanager } without permission 
com.hidglobal.ia.omnikey.service.permission.SMARTCARDIO

流形

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.smartcard">
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="19" />
 <uses-permission android:name="com.hidglobal.ia.omnikey.service.permission.SMARTCARDIO"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />


<application
    android:allowBackup="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".MainActivity">
        <intent-filter >
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

 </application>

此服务与安装在设备中的hid万能驱动程序一起燃烧。

可以在这里获得:https://www.hidglobal.com/drivers/16553

我该如何解决这个问题呢?

服务应用程序

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.theobroma.cardreadermanager" platformBuildVersionCode="15" platformBuildVersionName="4.0.4-1406430">
<uses-sdk android:minSdkVersion="13" android:targetSdkVersion="15" />
<uses-feature android:name="android.hardware.usb.host" />
<permission android:label="Access HID Global Omnikey Base Service" android:name="com.hidglobal.ia.omnikey.service.permission.SMARTCARDIO" android:protectionLevel="dangerous" android:description="Allows this app to receive smart card events and to access the HID Global Omnikey Base Service." />
<uses-permission android:name="com.hidglobal.ia.omnikey.service.permission.SMARTCARDIO" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application android:theme="null" android:label="CardReaderManager" android:icon="res/drawable-ldpi-v4/ic_hid_omnikey.png" android:name="com.theobroma.cardreadermanager.CardReaderApplication" android:logo="res/drawable-ldpi-v4/ic_hid_omnikey.png">
    <activity android:label="CardReaderManager" android:name="com.theobroma.cardreadermanager.CardReaderManagerActivity" android:launchMode="singleTask" android:screenOrientation="landscape">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <service android:name="com.theobroma.cardreadermanager.BackendService" android:permission="com.hidglobal.ia.omnikey.service.permission.SMARTCARDIO" android:process=":remote">
        <intent-filter>
            <action android:name="com.theobroma.cardreadermanager.backendservice" />
            <action android:name="com.theobroma.cardreadermanager.backendipc" />
        </intent-filter>
    </service>
    <receiver android:name="com.theobroma.cardreadermanager.BackendServiceStarter">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>
    <activity android:label="CardReaderInfo" android:name="com.theobroma.cardreadermanager.CardReaderInfoActivity" android:screenOrientation="landscape" android:windowSoftInputMode="stateHidden">
        <intent-filter>
            <action android:name="com.theobroma.cardreadermanager.cardreaderinfoactivity" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
</application>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-25 10:46:47

这是相当古老的,但仍有一些人可能认为它是有用的。作为解决办法,您可以在build.gradle中将目标SDK设置为22或更低,即targetSdkVersion 22

这对我来说很管用

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37713117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档