Android 格式化外置SD卡,出现权限问题

丨苏幕遮丨 2014-08-16 04:14:17
使用了如下方法
public static int formatStorage(String path) {
IMountService iMountService=getMountService();
int a = -1;
try {
iMountService.unmountVolume(path, true,false);
SystemClock.sleep(4000);
a=iMountService.formatVolume(path);
// int b=iMountService.mountVolume(path);
}catch (Exception e) {
e.printStackTrace();
}
return a;
}

manifest里添加如下权限:
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.MOUNT_FORMAT_FILESYSTEMS" />

结果运行时候报错

08-16 16:08:26.170: E/AndroidRuntime(11065): java.lang.SecurityException: Requires android.permission.MOUNT_UNMOUNT_FILESYSTEMS permission

完全不知道怎么办了。。。
...全文
608 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tuyrt7 2016-06-30
  • 打赏
  • 举报
回复
哥们你解决了这问题没? 我把签名成系统应用了之后,也是做这一段操作,还是不能格式化。能给我讲讲你是怎么解决的吗
丨苏幕遮丨 2015-08-17
  • 打赏
  • 举报
回复
引用 4 楼 chaozhung 的回复:
[quote=引用 3 楼 u014721709 的回复:] [quote=引用 2 楼 chaozhung 的回复:] 楼主解决了没,我最近也遇到相似问题了,完全不知道怎么解决了
好久之前做的啦,都忘了,要不试一下把apk签名。[/quote] 不行行的,权限问题,现在的那个权限在高版本中不适用了[/quote] 抱歉啊,我给忘了。。。惭愧惭愧。。。只是依稀记得我当时把apk签名了。。。 public static int formatStorage(String path) { IMountService iMountService=getMountService(); int a = -1; try { iMountService.unmountVolume(path, true, false); SystemClock.sleep(4000); a=iMountService.formatVolume(path); SystemClock.sleep(30000); iMountService.mountVolume(path); SystemClock.sleep(4000); Log.d("bucuo", "Mount Success!"); }catch (Exception e) { e.printStackTrace(); } return a; } <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.fujifilm.ea.launcher.settings" android:sharedUserId="android.uid.system" android:versionCode="2203" android:versionName="0.22.03" > <!-- android:sharedUserId="android.uid.system" --> <permission android:name="com.google.maps.android.utils.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> <uses-feature android:glEsVersion="0x00020000" android:required="true" /> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> <uses-permission android:name="com.google.maps.android.utils.permission.MAPS_RECEIVE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FIND_LOCATION" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" /> <uses-permission android:name="android.permission.RESTART_PACKAGES" /> <uses-permission android:name="android.permission.CLEAR_APP_CACHE" /> <uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" /> <uses-permission android:name="android.permission.DELETE_CACHE_FILES" /> <uses-permission android:name="android.permission.MASTER_CLEAR" /> <uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.SET_TIME_ZONE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name="android.permission.MOUNT_FORMAT_FILESYSTEMS" /> <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.INSTALL_PACKAGES" /> <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/> <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="17" /> <application android:allowBackup="true" android:exported="true" android:hardwareAccelerated="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:largeHeap="true" android:supportsRtl="true" android:theme="@style/AppTheme" > <activity android:name="com.fujifilm.ea.launcher.activity.SettingActivity" android:configChanges="layoutDirection|keyboard|keyboardHidden|orientation|screenSize" android:launchMode="singleTask" android:screenOrientation="landscape" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.fujifilm.ea.launcher.activity.BackupServerLoginWebViewActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize" android:launchMode="singleTask" android:screenOrientation="landscape" > </activity> <receiver android:name="com.fujifilm.ea.launcher.activity.BootReceiver" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.HOME" /> </intent-filter> </receiver> <receiver android:name="com.fujifilm.ea.launcher.common.BootReceiver" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.HOME" /> </intent-filter> </receiver> <receiver android:name="com.fujifilm.ea.launcher.activity.AlarmReceiver" > <intent-filter> <action android:name="com.fujifilm.ea.launcher.activity.alarm" /> </intent-filter> </receiver> <provider android:name="com.fujifilm.ea.launcher.provider.FujiFilmSettingsProvider" android:authorities="com.fujifilm.ea.launcher.provider.FujiFilmSettingsProvider" android:exported="true" /> <service android:name="com.fujifilm.ea.launcher.common.SettingsChangeService" > <intent-filter> <action android:name="com.fujifilm.ea.launcher.common.SettingsChangeService" /> </intent-filter> </service> <service android:name="com.fujifilm.ea.launcher.common.EAUpdateService" > <intent-filter/> </service> </application> <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" /> </manifest>
chaozhung 2015-08-14
  • 打赏
  • 举报
回复
引用 3 楼 u014721709 的回复:
[quote=引用 2 楼 chaozhung 的回复:] 楼主解决了没,我最近也遇到相似问题了,完全不知道怎么解决了
好久之前做的啦,都忘了,要不试一下把apk签名。[/quote] 不行行的,权限问题,现在的那个权限在高版本中不适用了
丨苏幕遮丨 2015-08-14
  • 打赏
  • 举报
回复
引用 2 楼 chaozhung 的回复:
楼主解决了没,我最近也遇到相似问题了,完全不知道怎么解决了
好久之前做的啦,都忘了,要不试一下把apk签名。
chaozhung 2015-08-14
  • 打赏
  • 举报
回复
楼主解决了没,我最近也遇到相似问题了,完全不知道怎么解决了
丨苏幕遮丨 2014-08-16
  • 打赏
  • 举报
回复
对了,那个getMountService()是这样的: public static IMountService getMountService() { IMountService mMountService = null; IBinder service = android.os.ServiceManager.getService("mount"); if (service != null) { mMountService = IMountService.Stub.asInterface(service); } return mMountService; }

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧