So I make an Android app with package name com.xxx.xxx. I know that any installed app will create a folder in Android/Data/com.xxx.xxx. But my case is I can't find my application package name in that directory after I install it. Am I missing something?
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ceria.tuntun"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>
Installed app wont necessary create a folder in Android/Data. There only the cache files are stored of your app, and that too if you have programmed your app to do so. By default the apps are stored in Internal memory in /data/data which can be accessed only if u have a rooted phone and a file browser for root users.
Which device r u using? You cannot see the application package in most of the devices because those do not have access to the internal storage if the app is installed in phone memory. You can access only SDCard.
the app is installed into the phone memory and not the SD Card by default. only the SD card files can be seen in an unrooted phone.
To install to SD card add this code to the manifest file.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="preferExternal"
... >
Related
I'm trying to save a file in the folder DCIM on my mobile phone (Samsung SM-N960F, Android 8.1.0); I'm using
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM)
to create a folder in the folder DCIM, but it's not working.
I suspect you do not have the proper permission for reading and writing to external storage. Add this to your project's build.manifest,
<manifest>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
...
</manifest>
I have an Android app written by Xamarin, and it works perfectly fine when debugging.
But when I want to release it, my *.apk installer does not ask for INTERNET permission, therefore my app crashes whenever it requires connection, which is almost in every activity since it's an online app.
I have added the permission in my manifest file, but for some reason, the app only asks for Reading and Writing data from SD card permission and totally ignores internet permission.
Here is my manifest file:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="ComicCity.ComicCity" android:versionCode="1" android:versionName="1.0" android:installLocation="preferExternal">
<uses-sdk android:minSdkVersion="19" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.DELETE_CACHE_FILES" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application android:label="ComicCity" android:icon="#drawable/CCicon"></application>
</manifest>
Internet is in the normal permissions list and thus you will not get prompted as it is auto-granted
If an app declares in its manifest that it needs a normal permission, the system automatically grants the app that permission at install time. The system does not prompt the user to grant normal permissions, and users cannot revoke these permissions.
Re: https://developer.android.com/guide/topics/permissions/normal-permissions.html
It seems like Read/Write external storage and Read phone state permissions are automatically added to the manifest on building the android apk. Are these necessary for all React Native android apps? Is there any way to remove these permissions?
Looking at the build/output/logs/manifest-merger-debug-report.txt I see:
android:uses-permission#android.permission.READ_EXTERNAL_STORAGE
IMPLIED from `/***/android/app/src/main/AndroidManifest.xml:1:1-22:12 reason: org.webkit.android_jsc` requested WRITE_EXTERNAL_STORAGE
It feels weird that I'll see these permissions being requested if I install the app from the Play store if I'm not using them.
I have an answer.
AndroidManifest.xml
Add this to manifest which should be line 1
xmlns:tools="http://schemas.android.com/tools"
It should look like this
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="YOUR PACKAGE NAME">
Now you can remove the permissions with this
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove" />
So my permissions for a simple app are
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" tools:node="remove" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove" />
Don't remove SYSTEM.ALERT.WINDOW, you will have problems in development.
I'm developing an Android app and I am not able to install it in the SD Card. This is my manifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.developfrank.application"
android:versionCode="1"
android:versionName="1.0"
android:installLocation="preferExternal">
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
I use as minimum version required Froyo 2.2 so I don't have any errors about the option installLocation, but at the moment of installing the app, my mobile installs it in the internal memory.
I also have these two permissions, I put it just in case it can give some clues:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
I tried many things and I am a bit lost. Thank you very much for your help
Frank.
I have an Mobile AIR project in FlashBuilder 4.6(Using AIR 3.4) and I am having a real problem publishing an APK. Here is the section from my APP XML:
<manifestAdditions><![CDATA[
<manifest android:installLocation="auto">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
</manifest>
]]></manifestAdditions>
For some reason, when I create an APK, the INTERNET permission is being tacked on the end of the manifest permissions block. Note that the application.xml in the asset/META-INF/AIR folder still looks correct.
Any ideas where I am going wrong?
After a lot more searching, I found my own answer:
Note: When you bundle the runtime, ADT adds the INTERNET and
BROADCAST_STICKY permissions to your application. These permissions
are required by the AIR runtime.
BROADCAST_STICKY seems to no longer be required, but apparently when using captive runtime we cannot get around this.