我已经在线程中看到了答案,其他人。但它还没有解决我的问题。我使用android marshmallow。 (我已购买,应用程序源代码)有一个文件附件已成功。 但是当我尝试发布应用程序并进行调试时。都失败了。没有可用的应用程序权限。
不需要任何特殊访问
如何修复,这是我的AndroidManifest.XML
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.mastekno.lock">
<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission
android:name="android.permission.PACKAGE_USAGE_STATS"
tools:ignore="ProtectedPermissions"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.CAMERA"/>
<application
android:name=".LockApplication"
android:allowBackup="true"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:manageSpaceActivity=".module.splash.SplashActivity"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".module.splash.SplashActivity"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name=".module.pwd.CreatePwdActivity"
android:label="Create Password"
android:screenOrientation="portrait"/>
<activity
android:name=".module.lock.GestureSelfUnlockActivity"
android:label="Unlock"
android:screenOrientation="portrait"/>
<activity
android:name=".module.lock.GestureUnlockActivity"
android:excludeFromRecents="true"
android:label=""
android:launchMode="singleTask"
android:noHistory="true"
android:screenOrientation="portrait"
android:theme="@style/unlock_activity_style"/>
<activity
android:name=".module.setting.LockSettingActivity"
android:label="Set"
android:screenOrientation="portrait"/>
<activity
android:name=".module.lock.GestureCreateActivity"
android:label="Create a pattern lock"
android:screenOrientation="portrait"/>
<activity
android:name=".module.about.AboutMeActivity"
android:label="About"
android:screenOrientation="portrait"/>
<activity
android:name=".module.main.MainActivity"
android:screenOrientation="portrait"/>
<service android:name=".service.LoadAppListService"/>
<service android:name=".service.LockService"/>
<receiver android:name=".receiver.BootBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</receiver>
</application>
我有2天没有解决这个问题,因为我真的不知道完成它。
答案 0 :(得分:0)
如果是这个
当我尝试发布应用程序并进行调试时。都失败了
您的意思是安装时列出的权限,它是Marshmallow
或android 6
之前的Android上的行为。如果您在具有android apk
的设备上测试应用的lollipop
文件,则会在安装时看到列出的权限。
如果您希望在android 6+
上安装应用时列出权限,则需要将target sdk
build.gradle
改为22
或更低,而不是android 6+
明智的方法,因为它会非常低,如果您的应用程序使用不同库的最新版本,可能会导致问题。
简而言之,您在function* interiorFileSaga() {
yield [
takeLatest(wizardActionTypes.UPLOAD_INTERIOR_FILE, handleInteriorFileUpload),
takeLatest(wizardActionTypes.INTERIOR_FILE_PROCESSING, handleInteriorFileProcessing),
]
}
的设备上看到的是正常的,在这些设备上,您应该要求应用程序功能所需的敏感权限,当应用程序运行时as described here。
答案 1 :(得分:0)
从Marshmallow应用程序需要请求运行时权限。它可能被用户授予或拒绝。可以通过覆盖onRequestPermissionsResult
方法来识别用户的响应。
public int PERMISSIONS_REQUEST_CAMERA = 100;
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){
if ( ActivityCompat.checkSelfPermission( getApplicationContext(), Manifest.permission.CAMERA )
!= PackageManager.PERMISSION_GRANTED ) {
ActivityCompat.requestPermissions(SplashActivity.this, new String[]{Manifest.permission.CAMERA}, PERMISSIONS_REQUEST_CAMERA);
}else {
useCamera();
}
}else {
useCamera();
}
public void useCamera(){
//your code goes here
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch(requestCode){
case PERMISSIONS_REQUEST_CAMERA:
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
useCamera();
}else
//Permission denied
break;
}
}