I am a newbie to Android application development... When i try to run my application i am getting a security exception as Permission Denial... though i am able to open my application i am unable to proceed to any of the process... Application doesn't access the web service... Plz help me out...
The following is the exception message I receive,
[2012-01-11 11:02:09 - eCalc] ActivityManager: java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.anb.eCalculator/.LoginActivity } from null (pid=-1, uid=-1) requires android.permission.INTERNET
enter code here
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.anb.eCalculator"
android:installLocation="internalOnly"
android:versionName="1.2.1" android:versionCode="10">
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<application android:label="#string/app_name"
android:theme="#android:style/Theme"
android:permission="android.permission.INTERNET"
android:icon="#drawable/ecalcicon" android:allowClearUserData="true">
<activity android:name=".LoginActivity"
android:label="#string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".CalculationActivity"></activity>
<activity android:name="ResultActivity"></activity>
<activity android:name=".InformationActivity"></activity>
<activity android:name=".RegisterActivity"></activity>
<activity android:name=".SettingsActivity"></activity>
<activity android:name=".ResultDetailsActivity"></activity>
<activity android:name=".Disclaimer"></activity>
</application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-sdk android:targetSdkVersion="5"
android:minSdkVersion="5"
android:maxSdkVersion="12">
</uses-sdk>
<uses-permission android:name="android.permission.INTERNET" />
Add this above line in your manifest file after your <uses-sdk> line.
Add this permission to your manifest file.
<uses-permission android:name="android.permission.INTERNET" />
I fixed it .
Click on "Run" and "Edit configuration". Select the activity you want to launch.
Related
I am trying to read data from Google Play Music Database using ContentProvider. I have included the READ_EXTERNAL_STORAGE permission within my Manifest file but, at crash, the logcat shows that the permission is not provided. Do I need to use the "Requesting Permission at runtime". If yes, how?
Error message:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.ryanbansal.mymusic/com.app.ryanbansal.mymusic.Requested}: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/audio/albums from pid=11192, uid=10240 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
Manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.app.ryanbansal.mymusic">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:hardwareAccelerated="true"
android:allowBackup="true"
android:icon="#drawable/headphonesicon"
android:label="#string/app_name"
android:roundIcon="#mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="#style/AppTheme">
<activity android:name=".Home">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".Requested"
android:label="Requested Results" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".Home"/>
</activity>
<activity
android:name=".Webpage"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="More info"
android:theme="#style/FullscreenTheme" >
</activity>
<service
android:name=".MyIntentService"
android:enabled="true"
android:exported="false" />
</application>
I would comment, but not enough reputation yet, but here is the documentation on runtime permissions for api 23 plus. Supplementary reponse building on #Tharkius comment:
https://developer.android.com/training/permissions/requesting.html
There's a very cool easy-to-use library for managing runtime permissions. Follow the documentation in that link, all you need to know is there, and you'll see how super easy it is to set up and use :D
Here is the Error Log:
Permission Denial: starting Intent { act=android.settings.WIFI_DISPLAY_SETTINGS cmp=com.android.settings/.Settings$WifiDisplaySettingsActivity } requires com.android.setting.permission.ALLSHARE_CAST_SERVICE
at android.os.Parcel.readException(Parcel.java:1472)
at android.os.Parcel.readException(Parcel.java:1426)
at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:2329)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1426)
at android.app.Activity.startActivityForResult(Activity.java:3513)
at android.app.Activity.startActivityForResult(Activity.java:3474)
at android.app.Activity.startActivity(Activity.java:3716)
at android.app.Activity.startActivity(Activity.java:3684)
Manifest file with Permission:
<uses-sdk android:minSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.setting.permission.ALLSHARE_CAST_SERVICE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<application
android:allowBackup="true"
android:icon="#drawable/icon"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="#string/app_name"
android:exported="true" >
</activity>
<activity
android:name=".SplashScreenActivity1"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
if your app is having target API level 23 make sure user grants the permission before using them. See RunTimePermission
I hope you are testing this application on samsung device because this permission is only worked on samsung device. As per my knowledge such permission is not exists in the android permission list.
Below is the permission list from android.
http://developer.android.com/reference/android/Manifest.permission.html
Hope this will help you.
I'm an android newbie. I'm using the android studio and connecting to a device, 4.04, api 14. I created a default login activity. It throws up the following exception:
Launching application: com.noatta.www.noatta_14/com.noatta.www.noatta_14.LoginActivity.
DEVICE SHELL COMMAND: am start -n "com.noatta.www.noatta_14/com.noatta.www.noatta_14.LoginActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.noatta.www.noatta_14/.LoginActivity }
java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.noatta.www.noatta_14/.LoginActivity } from null (pid=16079, uid=2000) not exported from uid 10127
at android.os.Parcel.readException(Parcel.java:1332)
at android.os.Parcel.readException(Parcel.java:1286)
at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1691)
at com.android.commands.am.Am.runStart(Am.java:451)
at com.android.commands.am.Am.run(Am.java:107)
at com.android.commands.am.Am.main(Am.java:80)
at com.android.internal.os.RuntimeInit.finishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:260)
at dalvik.system.NativeStart.main(Native Method)
Manifest file
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.noatta.www.noatta_14" >
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name=".LoginActivity"
android:label="#string/app_name"
android:windowSoftInputMode="adjustResize|stateHidden" >
</activity>
<meta-data
android:name="com.google.android.gms.version"
android:value="#integer/google_play_services_version" />
</application>
<!-- To access Google+ APIs: -->
<uses-permission android:name="android.permission.INTERNET" />
<!--
To retrieve OAuth 2.0 tokens or invalidate tokens to disconnect a user. This disconnect
option is required to comply with the Google+ Sign-In developer policies
-->
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<!-- To retrieve the account name (email) as part of sign-in: -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<!-- To auto-complete the email text field in the login form with the user's emails -->
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
</manifest>
Anybody have a suggestion on how to prevent the read exception?
You're missing <intent-filter> in activity definition:
<activity
android:name=".LoginActivity"
android:label="#string/app_name"
android:windowSoftInputMode="adjustResize|stateHidden" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
You are missing the intent-filter and the exception states you were missing the android:exported="true" in your AndroidManifest.xml
<activity
android:name=".LoginActivity"
android:label="#string/app_name"
android:windowSoftInputMode="adjustResize|stateHidden"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
I have problems running the latest Android emulators like "Nexus 7, Android 4.1.2". The emulator can start, but I can't deploy on it (by Maven) which probably depends on this problem: When I switch on the phone to the Apps view, I get "Unfortunately, launcher has stopped" and LogCat gives me the following output:
01-02 14:30:26.313: W/ActivityManager(151): Permission denied:
checkComponentPermission() owningUid=1000 01-02 14:30:26.313:
W/BroadcastQueue(151): Permission Denial: broadcasting Intent {
act=android.appwidget.action.APPWIDGET_UPDATE_OPTIONS flg=0x10
cmp=com.android.settings/.widget.SettingsAppWidgetProvider (has
extras) } from android (pid=970, uid=10014) is not exported from uid
1000 due to receiver
com.android.settings/com.android.settings.widget.SettingsAppWidgetProvider
My AndroidManifest looks like this:
<uses-permission android:name="android.permission.INTERNET" />
<uses-sdk
android:minSdkVersion="5"
android:targetSdkVersion="7" />
<application
android:name="my.domain.appcontext.ApplicationContext"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:allowBackup="true">
<activity
android:name="my.domain.appcontext.activities.MainActivity"
android:screenOrientation="nosensor"
android:theme="#android:style/Theme.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="my.domain.appcontext.activities.MainMenuDialogActivity"
android:excludeFromRecents="true"
android:theme="#style/Theme.Dialog" >
</activity>
<activity
android:name="my.domain.appcontext.activities.DistrictMenuDialogActivity"
android:excludeFromRecents="true"
android:theme="#style/Theme.Dialog" >
</activity>
<activity
android:name="my.domain.appcontext.activities.StreetMenuPreselectionDialogActivity"
android:excludeFromRecents="true"
android:theme="#style/Theme.Dialog" >
</activity>
<activity
android:name="my.domain.appcontext.activities.StreetMenuDialogActivity"
android:excludeFromRecents="true"
android:theme="#style/Theme.Dialog" >
</activity>
<uses-library android:name="com.google.android.maps"
android:required="true" />
</application>
Any ideas?
Are you trying to send the android.appwidget.action.APPWIDGET_UPDATE broadcast somewhere in your code? This is an Android OS broadcast, so you won't have permission to use it if you are...
I have a problem...
I'm making a simple program about GIS, and when I'm trying to launch it from eclipse to my device, I get warning when I check the console.
ActivityManager: java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.warteg.GIS/.Splash } from null (pid=16196, uid=2000) requires null
and the program is not installed in my device, but when I try with emulator from eclipse, the program is launched.
Can someone solve my problem? Here's my manifest XML.
<?xml version="1.0" encoding="utf-8"?>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<application
android:icon="#drawable/ic_launcher"
android:label="#string/app_name" >
<activity
android:name="Splash"
android:label="#string/app_name">
<intent-filter>
<category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
<uses-library android:name="com.google.android.maps"></uses-library>
<activity android:name=".Splash"></activity>
<activity android:name=".FormPetunjuk"></activity>
<activity android:name=".Peta"></activity>
</application>
your are registering Splash activity two times in manifest.xml so remove this one:
<activity android:name=".Splash"></activity>