当前位置:首页 » 安卓系统 » androidrequired

androidrequired

发布时间: 2022-07-28 18:34:30

① 判断android用户拒绝了某项权限这个问题您解决了吗

源码中被用来检查和请求权限的方法分别是Activity的checkSelfPermission和requestPermissions。这些方法api23引入,如下代码:

java">privatestaticfinalStringTAG="Contacts";
privatevoidinsertDummyContact(){
//.
ArrayList<ContentProviderOperation>operations=newArrayList<ContentProviderOperation>(2);

//First,setupanewrawcontact.
ContentProviderOperation.Builderop=
ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE,null)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME,null);
operations.add(op.build());

//Next,setthenameforthecontact.
op=ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID,0)
.withValue(ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME,
"__");
operations.add(op.build());

//Applytheoperations.
ContentResolverresolver=getContentResolver();
try{
resolver.applyBatch(ContactsContract.AUTHORITY,operations);
}catch(RemoteExceptione){
Log.d(TAG,"Couldnotaddanewcontact:"+e.getMessage());
}catch(){
Log.d(TAG,"Couldnotaddanewcontact:"+e.getMessage());
}
}

② 有没有遇到过各个版本之间android api接口的区别

还是有区别的,具体如下:
Android 1.5 API变更概要:
1、UI framework
· Framework for easier background/UI thread interaction
· 新SlidingDrawer 组件
· 新HorizontalScrollview 组件
2、AppWidget framework
· 一些关于创建桌面AppWidget 的API.
· 提供根据自定义的内容创建LiveFolders的API
3、Media framework
· 原声录音和回放 APIs
· 交互式的MIDI 回放引擎
· 开发者使用的视频录像API (3GP format).
· 视频相片分享 Intents
· 媒体搜索Intent
4、Input Method framework
· 输入法服务framework
· 文本预测引擎
· 提供具有下载能力的IME给使用者
5、Application-defined hardware requirements
应用可定义硬件需求,应用程序可以定义说明此程序需要什么硬件需求.比如是否需要物理键盘或者轨迹球.
6、Speech recognition framework
· 支持语音识别库.
7、Miscellaneous API additions
· LocationManager -应用可以接收到位置改变的信息.
· WebView - 触摸start/end/move/cancel DOM 事件的支持
· 重建Sensor Manager APIs
· GLSurfaceView - 创建OpenGL 应用更加方便的framework .
· 软件升级安装成功的Broadcast Intent - 更加平和优秀的软件升级体验

Android 1.6 API变更概要:
1、UI framework
· 新的类 android.view.animation 控制动画行为:
o AnticipateInterpolator
o
o BounceInterpolator
o OvershootInterpolator
2、· 新的XML 属性android:onClick ,从一个layout文件描述一个view的 View.OnClickListener.
· 对不同分辨率的屏幕的新的支持. 对于Bitmap和Canvas会执行有针对性的缩放行为.该框架会根据屏幕分辨率和其他内容自动缩放bitmap等.
要在你的应用中使用Android 1.6包含的API的话你必须要设置 "4"属性在manifest的 元素中
3、Search framework
· 应用程序现在可以公开的有关内容,作为建议放入快速搜索框,新的设备范围内的搜索功能,是可从主屏幕搜索。为了支持这一点,搜索框架增加了新的属性,可搜索的元数据文件。有关完整的信息,请参阅SearchManager文档。
4、Accessibility framework
· New android.accessibility package that includes classes for capturing accessibility events and forwarding them to an AccessibilityService handler.
· New AccessibilityService package that lets your application track user events and provide visual, audible, or haptic feedback to the user.
5、Gesture Input
· 新的gesture API :创建,识别,读取,保存手势.
6、Text-to-speech
· 新的android.speech.tts 包提供了TTS文本朗读功能,从一个文本生成一个声音文件的回放.
7、Graphics
·android.graphics 中的类,现在支持为不同的屏幕尺寸进行缩放.
8、Telephony
· 新的SmsManager 发送和接受短信.
9、Utilities
· 新的DisplayMetrics 字段决定当前设备屏幕的密度.
10、Android Manifest elements
o 新的 元素
o 新的 标签
o glEsVersion: 指定最小openGL ES的版本
·
11、元素的新的属性:
o 目标SDK版本: 应用程序能够指定目标版本. 它能够运行在旧版本(低至minSdkVersion), 他是按照应用程序的指定版本开发的. Specifying this version allows the platform to disable compatibility code that is not required or enable newer features that are not available to older applications.
o maxSdkVersion: 指定设计这个程序运行的最高版本 重要: 当使用 这些属性前请认真阅读文档.
12、New Permissions
· CHANGE_WIFI_MULTICAST_STATE: 允许应用进入Wi-Fi 多点传送模式.
· GLOBAL_SEARCH: 允许全局搜索系统,以便精确确定 content provider.
· INSTALL_LOCATION_PROVIDER: 允许应用在Location Manager.安装一个location provider.
· READ_HISTORY_BOOKMARKS: 允许应用读取(并不能写) 用户的浏览记录和书签
· WRITE_HISTORY_BOOKMARKS: 允许应用写入 (并不能读) 用户的浏览记录和书签
· WRITE_EXTERNAL_STORAGE: 允许程序写入外部存储器.应用程序使用API级别3下将默认授予此权限 (这对用户可见的); 应用程序使用API level4 或者更高的,必须要明确的宣告此权限.

Android 2.0 API变更概要:
1、Bluetooth
· 开启关闭蓝牙
· 设备和服务发现
· 使用 RFCOMM连接一个可插拔的设备收发数据
· 公布RFCOMM 服务和监听接收 RFCOMM 连接
2、Sync adapters
· 新的APIs, 同步桥接器连接任何backend
3、Account Manager
· 集中的帐户管理器 API ,安全的储存和使用可信的tokens/passwords
4、Contacts
· 新的通信APIs 允许获取多个账户的数据.
· 新的快速通信framework APIs 允许开发者在他们的应用中创建通信标记, 一键点击标记打开一个新的窗口展示一个如何联系当前人的列表.
5、WebView
· 不赞成使用的类: UrlInterceptHandler, Plugin, PluginData, PluginList, UrlInterceptRegistry.
6、Camera
· 颜色模式, 场景模式 闪光模式, 焦点模式, 白平衡 旋转和其他设置的新的特征.
· 当缩放级别改变的时候,会回调新的缩放回调接口.
7、Media
· MediaScanner现在为所有图片生成缩微图when they are inserted into MediaStore.
· 新的缩微图 API : 检索需要的图片和视频的缩微图.
8、Other Framework
· android.R.style 中新的系统主题,能够更加简单的显示当前acitivities的系统壁纸或者保持之前的activity在后台.新的壁纸管理器API 取代并且增加了wallpaper APIs ,我们可以允许我们的应用要求设置系统壁纸.
· 新的Service APIs帮助应用准确的处理Service 生命周期 ,在指定的低内存状态下service将会被关闭.
o Service.setForeground() 不推荐使用,并且现在这个方法并没有实际执行. .他被一个新的API所取代, startForeground(), that helps (and requires) associating an ongoing notification with the foreground state.
· MotionEvent 如果设备允许的话,MotionEvent 会返回多点触摸信息.最多可同时获取3点
· KeyEvent 现在有了新的按键发送 APIs,去帮助实现 action-on-up 和长按键行为, 一个新的机制取消按键 (虚拟按键).
· WindowManager.LayoutParams 现在有了新的常量允许窗口能够在被锁或者其他的状况中唤醒屏幕,这个允许程序能够让例如闹钟等的应用实现唤醒设备.
·New Intent APIs 广播设备的对接状态,当这个设备放在桌面或者停车场,允许程序启动特殊的activity.
9、Key events executed on key-up
Android 2.0能够使用虚拟按键HOME, MENU, BACK和SEARCH,而非物理按键,为了让用户在他们的设备中获得最好的用户体验,android平台现在把这些按键执行加入到了key-up,做了 key-down/key-up 配对,而非只有key-down.,这有助于防止意外按钮事件,并让使用者按下按钮区域,然后拖动而不生成一个事件出来。
这种改变只会影响你的应用程序一点,如果它是拦截按钮事件,最好用key-down,而不是key-up.。特例,如果您的应用程序拦截BACK 键,你应该确保你的应用妥善处理按键事件。

Android 2.0.1 API变更概要:
· 新的快速联系人标记风格(quickContactBadgeStyle)* 属性,让应用的QuickContactBadge 组件接收必要的风格.
· 当在manifest里面宣布了filter,取消了支持 ACTION_CONFIGURATION_CHANGED 广播 ,如果想要去接收这个广播, 这个应用必须注册 registerReceiver(BroadcastReceiver, IntentFilter).
性能上的改变:
1、Bluetooth
改变了 ACTION_REQUEST_ENABLE 和ACTION_REQUEST_DISCOVERABLE的返回值
· ACTION_REQUEST_ENABLE 如果蓝牙是成功开启的,现在返回RESULT_OK .如果使用者拒绝开启蓝牙的请求,则会返回RESULT_CANCELED .
· ACTION_REQUEST_DISCOVERABLE 如果使用者拒绝启动蓝牙或者蓝牙的可发现功能,则返回 RESULT_CANCELED .
2、通讯
The ACTION_INSERT Intent returns RESULT_CANCELED in cases where the contact was not persisted (例如剪切保存到一个空的操作里面).
修复错误:
3、资源
现在framework可以正选择应用资源的根据API等级划分的文件夹(drawable-v4是API level4版本用的资源).现在的版本这个功能不能正常工作的问题已经修复.
4、Contacts
The ACTION_INSERT Intent now returns the appropriate kind of URI when the request is made using the (now deprecated) Contacts APIs.
5、Other Framework fixes
· getCallingPackage() 现在正确的报告包名, 而不是进程名.

Android 2.1 API变更概要:
1、?Live Wallpapers 动态桌面
? 以下增加的API可以提供你开发动态的桌面:
· 新android.service.wallpaper 包.
· 新WallpaperInfo 类.
· 升级的WallpaperManager.
附加说明, 如果你的应用相提供Live Wallpapers的功能, 你必须记得增加一个 元素到你的应用manifest里面. 宣布这个属性android:name="android.software.live_wallpaper". 举例:
2、电话
· 新的SignalStrength 类提供当前网络信号的一些信息这些信息可以从onSignalStrengthsChanged(SignalStrength) 回调.
· 新的onDataConnectionStateChanged(int, int) 回调.
3、Views
· 新的View 方法isOpaque() 和onDrawScrollBars(Canvas).
· 新的RemoteViews 方法addView(int, RemoteViews) 和removeAllViews(int).
· 新的ViewGroup 方法isChildrenDrawingOrderEnabled() 和(boolean).
4、WebKit
· 新的WebStorage 方法操作网页数据缓存.
· 新的GeolocationPermissions 方法获取 Geolocation permissions 的出处, 把他们设置到 WebView上.
· 新的WebSettings 方法管理软件缓存, 网页缓存 和屏幕的缩放.
· 新的WebChromeClient 方法处理视频, 历史记录, 自定义view, 软件缓存限制还有其他??

Android 2.2 API变更概要:
1、对Microsoft Exchange更好的支持。
Android的几个新特性使之更适于Exchange企业环境。其中一些新特性列举如下:基于用户名/密码的 Exchange帐号自动检测支持Exchange日历的同步
改进的安全性,管理员可以跨越设备强制应用安全策略
恢复出场设置——管理员可以将设备重置为出场设置,这样就能在设备被偷或丢失后擦除上面的敏感数据了
全局的地址列表查找——可以根据服务器端返回的列表帮助用户自动填充收件人的邮件地址
设备管理API。Android 2.2改进并新增了大量的设备管理API,开发者可以将其用在应用当中:
应用数据备份API——可以将应用数据备份到云中。如果用户切换到另一个Android设备,他就可以从之前的设备中恢复数据。
2、Cloud-to-Device消息API。云中的用户/系统可以凭借这种增强在设备上触发动作。该特性可以将移动警告发给手机并且支持双向的推同步服务。
可以直接在外部的内存设备(SD卡)上安装应用,还可以将应用从内部迁移到SD卡上,反之亦然。
3、网络共享。Android 2.2可以通过一台Android电话提供的热点将多个服务连接到Internet上。
性能。借助于新式的Dalvik JIT编译器,对于CPU密集型应用来说,Android 2.2的速度要比Android 2.1快2~5倍。根据Linpack基准测试结果,安装了Froyo的Nexus
One电话可以达到37.5 MFlops,而同样的电话如果使用Android 2.1的话才有6.5 MFlops。
更快的浏览速度。由于浏览器现在使用了Chrome V8引擎,JavaScript代码的处理速度要比Android 2.1快2~3倍。
从浏览器中访问设备API。现在可以直接从浏览器中访问大量的设备API,如加速器、相机、声音识别、翻译等,这样Web应用就能以前所未有的方式与设备交互了。比如说,用户可以在拍完照后将其上传到网上,而这一切都是在浏览器内完成的。
4、支持Flash 10.1。Froyo支持最新的Flash 10.1
Beta版。最近,JIT编译器的引入极大地改进了性能,这对Flash应用的运行起到了巨大的帮助作用,因为大家都知道,Flash应用是一种CPU密集型应用。
Android商店。Android 2.2开发者和商店用户会从如下新特性中受益无穷:
可以在Android商店搜索应用,包括应用数据
更新——点击一次按钮后会自动更新所有应用
5、崩溃与冻结报告。Android2.2集成了崩溃/冻结报告特性,这样在崩溃时用户就可以将完整的细节信息报告给应用发布者了
从PC上浏览商店并将应用直接下载到设备上。用户可以通过PC选择商店的应用,之后应用就可以发到到加载的设备上。要想使用这个特性,用户需要登录并且设备需要在Android商店注册-
6、音乐管理。用户可以将Windows Media或Mac iTunes上的所有非DRM音乐转换到Android设备上播放。

Android 2.3 API变更概要:
Android 2.3姜饼发布,代号Gingerbread,包含哪些新特性和改进呢?
1. 新增android.net.sip包,名为SipManager类,可以轻松开发基于Sip的Voip应用。同时使用时必须至少包含这两个权限 <uses-permission android:name="android.permission.INTERNET"> and <uses-permissionandroid:name="android.permission.USE_SIP">,如果需要在Market上过滤仅显示支持VoIP API的机型,可以在发布时androidmanifest.xml中加入 <uses-feature android:name="android.software.sip"android:required="true"> 和 <uses-feature android:name="android.software.sip.voip"> 这两个标志。
2. Near Field Communications (NFC) 近距离通讯的支持,NFC可以在不接触的情况下实现数据交换通讯,可以很好的代替RFID SIM卡实现手机支付等扩展功能,当然Android123提示这需要硬件的支持
,新增包在 android.nfc包含NfcAdapter,NdefMessage,NdefRecord等类,类似蓝牙的处理方式,使用该API需要声明权限<uses-permission android:name="android.permission.NFC"> ,同时在Market上过滤支持NFC的设备需要加入<uses-feature android:name="android.hardware.nfc" android:required="true">这句。
3. 新增陀螺仪和其他的传感器支持
Android 2.3加入了一些新的感应器,比如gyroscope陀螺仪, rotation vector旋转向量, linear acceleration线性加速器 gravity和barometer气压计的支持。如果过滤这些功能,发布时加入类似<uses-feature android:name="android.hardware.sensor.gyroscope" android:required="true">到androidmanifest.xml中。
4. 多摄像头支持
新增 Camera.CameraInfo 可以管理摄像头前置或后置
新增 getNumberOfCameras(), getCameraInfo() 和 getNumberOfCameras() 获取摄像头数量。
新增 get() 方法,可以获取摄像头配置信息 CamcorderProfile
新增 () 获取jpeg编码质量参数可以在 CameraPreview.java 文件从ApiDemos示例程序中查看。
5. 新增拍照API
比如获取焦距getFocusDistances()获取预览FPS getPreviewFpsRange(), 获取焦距范围 getSupportedPreviewFpsRange() 和设置教育 setPreviewFpsRange()
6. 混响音效
本次Android 2.3框架中加入了对混响音效的支持,比如低音,耳机和虚拟化等效果.
新增 android.media.audiofx 包
新增 AudioEffect 类提供音效控制
新增音频会话ID,设置 AudioTrack 和 MediaPlayer.
新 AudioTrack 新增 attachAuxEffect()、getAudioSessionId()和 setAuxEffectSendLevel()。
新 attachAuxEffect() ,getAudioSessionId(), setAudioSessionId(int), 和 setAuxEffectSendLevel() .
相关音效在 AudioFxDemo.java 的 ApiDemos 示例。
6. 照片EXIF信息改进
新增经纬度标签在JPG格式的EXIF中,同时可以使用 getAltitude() 方法获取经纬度的EXIF信息
新增setOrientationHint() 可以让程序获取视频录制的方向.
7. 下载管理
在Android 2.3中新增的下载管理支持长时间运行的Http下载服务支持。可以保证在手机重启后仍然重试下载等操作,整个过程在后台执行。
通过 DownloadManager 类使用getSystemService(DOWNLOAD_SERVICE) 来实例化,通过ACTION_NOTIFICATION_CLICKED 这个Intent来处理。

8. 限制模式
可以帮助开发者监控他的应用的性能,处理线程阻塞,避免ANR的发生。
StrictMode.ThreadPolicy 和 StrictMode.VmPolicy 获取VM相关信息.
使用限制模式优化的Android应用程序可以查看android.os.StrictMode包的具体介绍。

③ 如何在Android真机上检测是否有Google Map add-on

方法有两个:

1)维护两条代码分支:
一条分支是针对于内置有Google Map add-on的Android真机,另一条分支是没有内置有Google Map add-on的Android真机。
但是这样做会增加维护成本,而且粗心的用户可能会在自己的机器上安装了不匹配的分支,从而降低了软件的友好度。

2)仍然只保留一条代码分支:
国外一位大牛指出:在<uses-library>标签中还包含了一个没有公布的属性"android:required",你可以将com.google.android.maps库的这个属性设置为false,即:
<!-- The "android:required" attribute was added in API level 5 (Android 2.0) -->
<uses-library android:name="com.google.android.maps" android:required="false" />

这代表如果在目标机器上内置了Google Map add-on,则可以正常使用应用;如果目标机器没有内置Google Map add-on,也可以成功安装应用。但是开发人员需要在代码中自行判断Google Map add-on是否可用,

④ android 调用系统录像功能时,怎样限制录像的时间和录像文件大小

不设置质量即可。

⑤ No Activity found to handle Intent 如何解决

android.ndroid有两种Intent, 显式和隐式content.ActivityNotFoundException:NoActivityfoundtohandleIntent

⑥ django做后台 android登陆成功后 android怎么发送请求才能通过@login_required

三种解决方案,
第一种就是模拟浏览器的Session ID Cookie,这种解决方案的好处是你的浏览器异步请求和移动端App共享基本不用改后端服务。
第二种解决方案,也就是Restful Service一般推荐的认证解决方案,就是把用户名密码用Base64编码后放到请求的header里面,实际就是传统的http basic认证方式。这个其实改动很小,因为Django支持这种认证方式,你把认证方式改一下,view代码不用改
第三种解决方案虽然简单,但是不推荐,那就是把用户名密码附加到每次的请求参数,这种方式乍看很简单,但实际不好,一是不安全,二是你或者改view,或者得写middleware.

⑦ android required key not available 怎么办

作为一个模拟器,一个软件,它不可能实现连线WIFI功能 你想要的这个效果,跟你想用电脑软件做出一个无线网卡的想法是一样的 电脑能搜是因为它有无线网卡 而你的模拟器,网卡在哪? 用安卓模拟器不需要连接WIFI,只要你的电脑能够上网,它就能上网

⑧ Android Studio问题 JDK Required 。

Android Studio要求安装JDK(Java开发环境),而且不能是JRE( Java运行环境),
先安装好JDK(JDK 1.7以上吧),然后配置一个JAVA_HOME的环境变量,指向JDK安装目录(右键偶的电脑——属性——高级系统设置——环境变量),比如c:\program files\jdk1.xxx

⑨ 如何判断android用户拒绝了某项权限

Android框架包含了对各种Camera以及其上可用的Camera功能的支持,它允许你在应用程序中抓拍照片和视频。
注意事项
在开启应用程序使用Android设备上的Camera功能之前,要考虑一些打算如何使用这些硬件功能的问题:
1. Camera需求:要考虑应用程序是否必须要运行在有Camera的设备上,如果必须,就要在应用程序的清单中声明Camera需求;
2. 快照或定制Camera:应用程序准备如何使用Camera?是只对抓拍或视频剪辑感兴趣?还是要应用程序提供使用Camera的新方法?对于抓拍或剪辑,要考虑使用既存的Camera应用程序。对于开发定制化的Camera功能,请看下文的“构建Camera应用程序”
基础
Android框架通过Camera API或Camera Intent来支持拍照和录像,以下是相关的类:
Camera
这个类是控制设备Camera的主API。在构建一个Camera应用程序时,它被用于拍照或录像。
SurfaceView
这个类用于向用户实时的展现Camera的预览。
MediaRecorder
这个类用于记录来自Camera的视频
Intent
MediaStore.ACTION_IMAGE_CAPTURE或MediaStore.ACTION_VIDEO_CAPTURE类型的Intent动作被用于不直接使用Camera对象来拍照或录像。
清单声明
在开始使用Camera API开发应用程序之前,要确保清单文件已经有了适当的声明,以允许使用Camera硬件和其他相关的功能。
1. Camera权限:应用程序必须申请使用设备Camera的权限。
<uses-permissionandroid:name="android.permission.CAMERA"/>
注意:如果通过Intent来使用Camera,应用程序就不需要申请这个权限。
2. Camera功能:应用程序还必须要声明打算使用的Camera功能,例如:
<uses-featureandroid:name="android.hardware.camera"/>
把Camera功能添加到应用程序的清单中,会让Google Play防止把程序安装到不包含Camera或不支持你所需要的Camera功能的设备上。关于如何使用基于功能过滤的Google Play,请看Google Play和基于功能的过滤
如果应用程序能够使用Camera或正确的操作Camera功能,但却不需要它,那么就应该在清单中指定android:required属性,并把属性值设置为false:
<uses-feature android:name="android.hardware.camera" android:required="false" />

3. 存储权限:如果应用程序要把图片或视频保存到设备的外部存储器上(如SD卡),就必须在清单中指定这个权限:
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

4. 音频录音权限:对于视频采集的音频录音,应用程序必须要申请音频采集权限:
<uses-permissionandroid:name="android.permission.RECORD_AUDIO"/>

5. 位置定位权限:如果应用程序要给图片标记GPS位置信息,就必须申请位置定位权限:
<uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/>
关于获得用户位置的更多信息,请看“定位策略”
使用既存的Camera应用
在应用程序中不需要太多的额外代码就可以快速的开启拍照或录像的方法是:使用Intent来调用一个既存的Android Camera应用程序。一个Camera Intent能够通过既存的Camera应用程序和它返回给应用程序的播放控制来申请采集一张照片或一段视频。本节会向你展示如何使用这项技术来采集一张图片或一段视频。
调用Camera Intent的过程会遵循以下这些大概的步骤:
1. 编写一个Camera Intent:创建一个申请图片或视频的Intent对象,使用以下Intent类型之一:
MediaStore.ACTION_IMAGE_CAPTURE:从一个既存的Camera应用中申请图片功能的Intent动作类型;
MediaStore.ACTION_VIDEO_CAPTURE:从一个既存的Camera应用中申请视频功能的Intent动作类型。
2. 启动Camera的Intent:使用startActivityForResult()方法来执行Camera的Intent。Intent启动后,该Camera应用程序的用户界面会显示在屏幕上,并且用户能够拍照或录像;
3. 接收Intent的结果:在你的应用程序中建立一个onActivityResult()方法来接收来自Camera Intent的回调和数据。当用户完成成拍照或录像(或者是取消操作),系统会调用这个方法。
图像采集Intent
使用Camera Intent来采集图像是你的应用程序用最少的代码来拍照的快捷方式。一个图片采集Intent能够包含以下额外的信息:
MediaStore.EXTRA_OUTPUT:这个设置需要一个指定了保存图片路径和文件名的Uri对象。这个设置是可选,但强烈推荐使用。如果不指定这个值,Camera应用程序会用默认的名称把采集到的图片保存到默认的位置,这些默认值在Intent.getData()方法的返回字段中指定。
以下示例演示了如何构建一个图片采集Intent,并执行它。示例中GetOutputMediaFileUri()方法引用了下面“保存媒体文件”一节中的示例代码:
private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100;
private Uri fileUri;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// create Intent to take a picture and return control to the calling application
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); // create a file to save the image
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name

// start the image capture Intent
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
}
startActivityResult()方法执行完成后,用户就会看到Camera应用程序的界面。用户完成拍照(或取消操作)之后,用户界面就会返回到你的应用程序中,并且你必须监听onActivityResult()方法来接收Intent的结果,并继续你的应用程序的执行。
视频采集Intent
使用Camera Intent采集视频是让你的应用程序能够用最少的代码来录像的一中快捷方式。视频采集Intent能够包含以下额外信息:
MediaStore.EXTRA_OUTPUT:这个设置要求用一个URI来指定保存视频的路径和文件名。虽然它是可选的,但强烈推荐使用这个设置。如果没有指定这个设置,那么Camera应用程序会把采集到的视频用默认的名称保存到默认的位置,默认的设置是在Intent的Intent.getData()方法域中返回的。
MediaStore.EXTRA_VIDEO_QUALITY:这个值的范围是0~1,0的时候质量最差且文件最小,1的时候质量最高且文件最大。
MediaStore.EXTRA_DURATION_LIMIT:这个值以秒为单位,显示视频采集的时长。
MediaStore.EXTRA_SIZE_LIMIT:这个值以字节为单位,限制视频采集的文件大小。
下面的示例演示了如何构造一个视频采集的Intent,并执行它。这个例子中的getOutputMediaFileUri()方法引用了下文的“保存媒体文件”中的示例代码:
private static final int CAPTURE_VIDEO_ACTIVITY_REQUEST_CODE = 200;
private Uri fileUri;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

//create new Intent
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);

fileUri = getOutputMediaFileUri(MEDIA_TYPE_VIDEO); // create a file to save the video
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name

intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); // set the video image quality to high

// start the Video Capture Intent
startActivityForResult(intent, CAPTURE_VIDEO_ACTIVITY_REQUEST_CODE);
}
当startActivityForResult()方法被执行时,用户就会看到一个可编辑的Camera应用程序界面。在用户完成录像(或取消操作)之后,该用户界面就会返回到你的应用程序中,并且你必须监听onActivityResult()方法来接收Intent的结果,并继续执行你的应用程序。
接收Camera Intent结果
一旦你构建并执行了一个图片或视频的Camera Intent,那么就必须要配置你应用程序来接收Intent的结果。本节向你展示了如何监听来自Camera Intent的回调,以便应用程序能够对采集到的图片或视频做进一步的处理。
为了接收Intent的结果,必须在启动Intent的那个Activity中重写onActivityResult()方法。下面的示例演示了如何重写onActivityResult()方法来采集图片Camera Intent或视频Camera Intent的返回结果:
private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100;
private static final int CAPTURE_VIDEO_ACTIVITY_REQUEST_CODE = 200;

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
// Image captured and saved to fileUri specified in the Intent
Toast.makeText(this, "Image saved to:\n" +
data.getData(), Toast.LENGTH_LONG).show();
} else if (resultCode == RESULT_CANCELED) {
// User cancelled the image capture
} else {
// Image capture failed, advise user
}
}

if (requestCode == CAPTURE_VIDEO_ACTIVITY_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
// Video captured and saved to fileUri specified in the Intent
Toast.makeText(this, "Video saved to:\n" +
data.getData(), Toast.LENGTH_LONG).show();
} else if (resultCode == RESULT_CANCELED) {
// User cancelled the video capture
} else {
// Video capture failed, advise user
}
}
}
一旦Activity接收到一个成功的结果,那么你的应用程序就可以访问指定位置中的被采集的图片或视频。

⑩ android usb host模式 中需要什么权限

需要具备Root的权限,否则有些操作可能会无法完成。建议先root设备。

一:必须确定Android设备支持USB Host,具体支持与否请参考自己的说明书。
二:确认Android是否已经开放了USB访问权限。
进入系统,找到目录“/system/etc/permissions”,可以用ES或者RE文件管理器进行操作。查看该目录下,是否有一个文件"android.hardware.usb.host.xml",
如果没有,则自己创建一个同名文件,内容如下:

<permissions>
<feature name="android.hardware.usb.host"/>
</permissions>

然后,拷贝到“/system/etc/permissions”目录下。
三:继续检查目录“/system/etc/permissions”下,将其中的“handheld_core_hardware.xml (手机)或者 tablet_core_hardware.xml(平板)”拖出来,打开文件,看看<permissions>结点下面有没有下面这个结点:
<feature name="android.hardware.usb.host" /> 如果没有,就自己补上一行,保存,并push进去替换原来的文件。

热点内容
安卓高级开发考什么 发布:2025-03-16 11:20:35 浏览:716
揽胜哪个配置带二代地形 发布:2025-03-16 11:16:52 浏览:969
c语言数组存储文件 发布:2025-03-16 11:16:48 浏览:788
sqlserver2016r 发布:2025-03-16 11:15:58 浏览:26
网页登录找不到该服务器什么意思 发布:2025-03-16 11:14:19 浏览:831
网站搭建服务器搭建 发布:2025-03-16 10:33:27 浏览:795
游戏目录在哪里安卓 发布:2025-03-16 10:33:19 浏览:467
婉儿脚本 发布:2025-03-16 10:19:33 浏览:580
c语言ftp下载文件 发布:2025-03-16 10:05:02 浏览:307
手机帐户密码怎么找回密码 发布:2025-03-16 10:02:10 浏览:706