我正在尝试访问用户设备上的媒体文件(音乐)来播放它们; 一个简单的"你好世界" - 音乐播放器应用程序.
我已经按照一些教程,他们基本上给出了相同的代码.但它不起作用; 它一直在崩溃并告诉我:
error.....
Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/audio/media from pid=27696, uid=10059 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
....
Run Code Online (Sandbox Code Playgroud)
现在,这是我的清单文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="slimsimapps.troff" >
<uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
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>
</manifest>
Run Code Online (Sandbox Code Playgroud)
这是我的Java方法:
public void initialize() {
ContentResolver contentResolver = getContentResolver();
Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Cursor cursor = contentResolver.query(uri, null, null, null, null); …Run Code Online (Sandbox Code Playgroud) java android audio-player android-music-player android-external-storage
我的项目的构建路径上有一个库(jar).项目使用以下意图访问jar中的MainActivity:
final Intent it = new Intent();
it.setClassName("com.example.lib", "com.example.lib.MainActivity");
startActivity(it);
Run Code Online (Sandbox Code Playgroud)
它曾经工作了一段时间,但突然开始得到'ActivityNotFoundException:没有找到活动来处理Intent',我能够解决它.但是现在我遇到了'java.lang.SecurityException:Permission Denial:start Intent'.
我已经尝试了所有关于stackoverflow的建议(检查清单文件中的重复项;将lib:exported ="true"添加到lib清单; Eclipse> Project> Clean;添加/修改'intent-filter'标签;等等).我甚至尝试重新编写项目的清单,但没有去任何地方.
这是logcat输出:
11-07 06:20:52.176: E/AndroidRuntime(4626): FATAL EXCEPTION: main
11-07 06:20:52.176: E/AndroidRuntime(4626): java.lang.SecurityException: Permission Denial: starting Intent { cmp=com.example.lib/.MainActivity } from ProcessRecord{40dd3778 4626:com.example.project/u0a10046} (pid=4626, uid=10046) not exported from uid 10047
11-07 06:20:52.176: E/AndroidRuntime(4626): at android.os.Parcel.readException(Parcel.java:1425)
11-07 06:20:52.176: E/AndroidRuntime(4626): at android.os.Parcel.readException(Parcel.java:1379)
11-07 06:20:52.176: E/AndroidRuntime(4626): at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1885)
11-07 06:20:52.176: E/AndroidRuntime(4626): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1412)
11-07 06:20:52.176: E/AndroidRuntime(4626): at android.app.Activity.startActivityForResult(Activity.java:3370)
11-07 06:20:52.176: E/AndroidRuntime(4626): at android.app.Activity.startActivityForResult(Activity.java:3331)
11-07 06:20:52.176: E/AndroidRuntime(4626): at …Run Code Online (Sandbox Code Playgroud) 在我的程序中,它添加了一个屏幕快捷方式.我在屏幕上的图标很好,但当我点击它时,我得到:
03-01 20:00:29.410: ERROR/AndroidRuntime(796): java.lang.SecurityException: Permission Denial: starting Intent { data=http://www.example.com/ flags=0x14000000 comp={com.isaacwaller.example/com.isaacwaller.example.ExampleCut} } from ProcessRecord{435c7398 796:android.process.acore/10005} (pid=796, uid=10005) requires null
Run Code Online (Sandbox Code Playgroud)
你知道这个问题吗?谢谢,
艾萨克
ACRA的粉碎报告给我发了这个错误.
java.lang.SecurityException: Not allowed to start service Intent { act=auto_update cmp=net.DailyTimer.CalendarAlarmHelperFree/net.DailyTimer.CalendarAlarmHelper.CalendarAlarmService } without permission Service process is bad
Run Code Online (Sandbox Code Playgroud)
我在有限的设备上看到这个错误,我无法重现.我猜这个错误取决于运行环境.
我的问题是:
编辑:
我在调用startService(intent)启动远程服务时遇到此错误.在许多设备上它工作正常.
我已经从eclipse导出了我的应用程序并将其安装在我的手机上.安装后,我从软件包安装程序中单击"打开",但安装程序强制关闭.之后,当我尝试启动应用程序时,单击它后没有任何反应.我点击应用程序抽屉中的应用程序,但它返回到主屏幕.
当我通过usb连接我的设备时,我能够在模拟器和调试模式下运行,但是当我导出apk进行安装时却无法运行.
请注意,这不是我导出安装的第一个应用程序.以前的应用程序工作正常.
可能重复:
从其他应用程序启动Facebook应用程序
几天前,为了向我的用户展示另一个用户配置文件,我使用了以下解决方案:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setClassName("com.facebook.katana", "com.facebook.katana.ProfileTabHostActivity");
Long uid = new Long("123456789");
intent.putExtra("extra_user_id", uid);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
许多stackoverflow用户都使用此解决方案(从查看有关此主题的所有问题和答案).
最后的Facebook应用更新(1.9.11),甚至可能在此解决方案过时之前.现在,您将收到以下异常:
java.lang.SecurityException:Permission Denial:从ProcessRecord启动Intent {act = android.intent.action.VIEW cmp = com.facebook.katana/.ProfileTabHostActivity(has extras)} ...需要null
有谁知道我现在如何打开Facebook应用程序?
谢谢
我有一个无UI片段的业务逻辑,我必须测试.我尝试了两个选项,但都失败了.
1.使用AndroidTestCase并创建模拟活动.
以下代码
@Override
protected void setUp() {
Intent i = new Intent(getTestContext(), TestActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getTestContext().startActivity(i);
}
Run Code Online (Sandbox Code Playgroud)
抛出一个例外
Permission denied: checkComponentPermission() reqUid=10104
java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 cmp=com.xxx.iabsample.test/.TestActivity } from ProcessRecord{40769510 28116:com.xxx.iabsample/10070 (pid=28116, uid=10070) requires null
Run Code Online (Sandbox Code Playgroud)
2.将ActivityInstrumentationTestCase2与模拟活动一起使用
码
public class IabTest extends ActivityInstrumentationTestCase2<TestActivity> {
public IabTest() {
super("com.xxx.iabsample.test", TestActivity.class);
}
}
Run Code Online (Sandbox Code Playgroud)
抛出一个例外
java.lang.RuntimeException: Unable to resolve activity for: Intent { act=android.intent.action.MAIN flg=0x10000000 cmp=com.xxx.iabsample/.test.TestActivity }
Run Code Online (Sandbox Code Playgroud)
它似乎尝试从测试目标应用程序启动活动,而不是从测试应用程序启动.
那么,测试片段的正确方法是什么?
我有一个我试图启动的Android应用程序,它给了我错误
java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.hoosierag/.MainActivity } from null (pid=32395, uid=2000) not exported from uid 10125
Run Code Online (Sandbox Code Playgroud)
当我尝试更改清单中的启动器活动时,我收到此错误.当我在模拟器上启动它时,我也没有收到此错误,但是当我尝试在设备上启动它时.我已经在3个不同的Android设备上尝试了它,它三次都给出了同样的错误.这是我的清单代码:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hoosierag"
android:versionName="1.11" android:versionCode="4">
<uses-sdk android:minSdkVersion="3"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar">
<activity android:name=".MainActivity" android:screenOrientation="portrait"
android:label="MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="Main" android:screenOrientation="portrait"/>
<activity android:name="News" android:screenOrientation="portrait"/>
<activity android:name="Audio" android:screenOrientation="portrait"/>
Run Code Online (Sandbox Code Playgroud)
最初,Launcher Activity是名为Main的活动.然后我创建了一个名为MainActivity的新活动,并将其作为启动器类.
android android-manifest android-intent android-xml android-activity
我尝试对 Android 应用程序进行测试自动化。我有来自开发人员的活动名称和包名称,所以它是正确的。我在访问活动时遇到问题。
我研究了很多,我看到了一些类似的主题,比如:
Android:java.lang.SecurityException:权限拒绝:启动意图 https://discuss.appium.io/t/error-a-new-session-could-not-be-created-for-android-appium/2571
当我输入./adb shell am start com.companyname.appname/com.companyname.appname.activities.MainActivity我收到以下消息:
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.companyname.appname/.activities.MainActivity }
java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.companyname.appname/.activities.MainActivity } from null (pid=13786, uid=2000) not exported from uid 10101
at android.os.Parcel.readException(Parcel.java:1465)
at android.os.Parcel.readException(Parcel.java:1419)
at android.app.ActivityManagerProxy.startActivityAsUser(ActivityManagerNative.java:2133)
at com.android.commands.am.Am.runStart(Am.java:680)
at com.android.commands.am.Am.onRun(Am.java:270)
at com.android.internal.os.BaseCommand.run(BaseCommand.java:47)
at com.android.commands.am.Am.main(Am.java:76)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:243)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
当我尝试使用 Appium 运行该应用程序时,它会抛出以下内容:
[31mMessage: [0m[31morg.openqa.selenium.SessionNotCreatedException: A new session could not be created. (Original error: Permission to start activity …Run Code Online (Sandbox Code Playgroud) 我最近接手了一个使用Appium进行自动移动测试的项目。我有一些应该与Appium一起运行的python脚本,但是当尝试运行它们时,我遇到了“ [INSTALL_FAILED_VERSION_DOWNGRADE]”。经过对此事的大量研究,我认为这是与Android相关的问题,它是APK版本。但是,我是Android的新手,因此要完全了解Appium和Android所做的工作就很困难。在尝试将应用程序安装到设备上时,我更倾向于解决问题,但是我觉得我已经解决了排除故障的步骤。一些示例可确保我拥有该应用程序的最新版本,卸载该应用程序,重新安装该应用程序的较旧版本并最终检查更新。
Python脚本回溯:
Traceback (most recent call last):
File "main.py", line 310, in <module>
launch()
File "main.py", line 26, in launch
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
File "C:\Python\lib\site-packages\appium\webdriver\webdriver.py", line 36, in __init__
super(WebDriver, self).__init__(command_executor, desired_capabilities, browser_profile, proxy, keep_alive)
File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 151, in __init__
self.start_session(desired_capabilities, browser_profile)
File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 240, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 308, in execute
self.error_handler.check_response(response)
File "C:\Python\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: A new session could …Run Code Online (Sandbox Code Playgroud) android ×10
apk ×2
appium ×2
java ×2
permissions ×2
adb ×1
android-xml ×1
audio-player ×1
facebook ×1
homescreen ×1
junit ×1
manifest ×1
python ×1
service ×1
shortcut ×1