给游戏添加视频广告的时候,发现demo可以正常展示出广告,但是我按照api上写完之后发现总是报错,关键点(Permission denied),原来是没有权限,后来发现需要在Activity中同时添加权限。
AndroidManifest.xml文件中权限配置
<!--权限配置--> <uses-permission android:name="android.permission.INTERNET" /> <!-- 连接到互联网 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 获取网络状态的权限如 2G,3G,4G getActiveNetworkInfo() --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 获取WiFi状态信息 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 写入到手机硬盘信息 --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- 读取手机硬盘信息 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /><!-- sd卡读写 --> <uses-permission android:name="android.permission.READ_PHONE_STATE" /><!-- 读取手机的imei -如果需要上Google play需要去掉此权限--> <uses-permission android:name="android.permission.GET_TASKS" /> <!-- 获取应用运行状态信息 -->
出现下面错误
W/System.err: java.io.FileNotFoundException: /storage/emulated/0/gfly/movie/a5d79718b84b0e0752aa3847c6c706be.mp4 (Permission denied)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:146)
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1097)
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1047)
at yw.mz.game.b.views.videos.players.Player.playPath(Player.java:329)
at yw.mz.game.b.views.videos.players.MVideoPlayActivityManager$1.handleMessage(MVideoPlayActivityManager.java:147)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:6523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)
解决办法:
if(ActivityCompat.checkSelfPermission(currActivity,Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED){ActivityCompat.requestPermissions(currActivity,PERMISSIONS_STORAGE,REQUEST_EXTERNAL_STORAGE);}