Это странная проблема.Мое приложение может успешно получить доступ к SD-карте, если я не установил android.uid.system
.Но после установки android.uid.system
мое приложение не может получить доступ к SDCard.В это время имеет место исключение: 07-13 09:11:24.999: INFO/System.out(9986): create file happen exception--->java.io.IOException: Permission denied
.Я проверяю, я пишу правильное разрешение в нужном месте:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />.
Поскольку в моем приложении используется forceStopPackage
, мне нужно добавить android.uid.system
в манифест.И я написал LOCAL_CERTIFICATE := platform
в файле make.Кто может объяснить эту странную проблему.После установки android.uid.system
мое приложение относится к системному процессу, который должен иметь больше возможностей для доступа к SD-карте.Это моя идея.Вот мой код:
public void setPackage(String dir){
System.out.println( "setPackage dir=="+dir );
File share=new File("/mnt/sdcard","test.txt");
if(!share.exists()){
try{
share.createNewFile();
}catch(Exception e){
System.out.println( "creat file happen exception--->" +e.toString() );
}
}
try{
if(share!=null){
System.out.println( "create file is not null" );
FileOutputStream fops=new FileOutputStream(share);
fops.write(dir.getBytes());
fops.flush();
fops.close();
}
}catch(Exception e){
System.out.println( "write Exception-->" +e.toString() );
}
}
И мое приложение работает на эмуляторе, и его целевая версия - 2.3.Большое спасибо.