Articles of android intent

在android中提升Intent的成本

广播意图需要多少性能? 是否可以每秒广播多次或意图昂贵?

“尝试确定电池电量时,不允许IntentReceiver组件注册接收意图”

我正在尝试按照http://developer.android.com/training/monitoring-device-state/battery-monitoring.html上的指南从我的应用程序获取电池信息 这是检查电池电量的方法: public void sendBatteryInfoMessage(){ IntentFilter iFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); Intent batteryStatus = c.registerReceiver(null, iFilter); int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1); boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING || status == BatteryManager.BATTERY_STATUS_FULL; int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); boolean isUsbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB; boolean isAcCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC; int batteryLevel = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); int scale = […]

OpenCV Service Intent必须是显式的,Android 5.0 Lollipop

我正在为使用OpenCV的学士学位文凭构建此应用程序。 一切都很顺利,直到我将手机的Android更新到5.0。 更新后,我的项目停止工作,因为: java.lang.IllegalArgumentException:Service Intent必须是显式的:Intent {act = org.opencv.engine.BIND} 我已阅读并告知自己有关Android 5.0中隐式意图的新限制,但我如何解决这个问题以使OpenCV工作? 我可以修改OpenCV SDK中的AsyncServiceHelper.java文件以尝试修复此问题,但是为了使用显式意图,我怎样才能获得需要运行的OpenCV服务的Class对象? 或者这种方法可能是死路一条,但有没有其他方法,或者我唯一的选择是更新OpenCV SDK,还是降级我的设备上的Android版本?

使用Intent.ACTION_SEND和Intent.EXTRA_STREAM与Google+应用分享图片

我的应用会生成用户可以保存或与他人共享的图像。 以下代码适用于大多数应用程序:Messenger,Facebook,Dropbox,电子邮件等。含义,图像由所选应用程序加载,用户可以使用该应用程序成功共享图像。 Intent intent = new Intent(Intent.ACTION_SEND); intent.setType(“image/png”); File o = new File(dir, “file.png”); intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(o)); startActivity(Intent.createChooser(intent , “Send options”)); 但是,当我在应用列表中选择Google+时,Google +会启动,但该图片不会包含在post窗口中。 相反,谷歌+显示一个Toast消息: “You can only post photos stored on your device.” 这有点令人困惑,因为图像在外部SD卡上,即/mnt/sdcard/AppDir/file.png。 我正在使用Google+应用的最新更新(2.3.1.242969)。 还有另一个与谷歌+共享图像的技巧吗? 谢谢。 更新: 我的应用生成了共享的图像,因此@ chirag-shah下面的示例不能直接应用。 但是,使用MediaStore看起来是正确的想法。 我已经确定了以下基本代码: void shareImage(int position) { File f = getFileFor(position); ContentValues values = new ContentValues(2); values.put(MediaStore.Images.Media.MIME_TYPE, […]

Dolphin Web浏览器在卸载时会如何得到通知?

背景 应用程序允许用户回答为什么决定卸载它们可能很有用。 问题 似乎Dolphin网络浏览器应用程序(以及“ 我发明的一切 ”)以某种方式设法绕过它,现在每次卸载应用程序时它都会显示一个网页(在默认的Web浏览器上)。 即使我使用ADB卸载,也会发生这种情况。 作为一个用户,我真的很讨厌它,但它仍然很有趣,因为据我所知,应用程序无法获得卸载自己的意图。 题 怎么会这样? 他们是如何克服这个问题的? 这是一个黑客?

使用Cache Uri作为MediaStore.EXTRA_OUTPUT时,相机无法正常工作/保存

我试图从Fragment拍摄照片后获得完整的图像。 如果我使用文件中的Uri( Uri.fromFile(file) ),相机将在拍摄照片并点击“确定”按钮后退出(看起来无法写入Uri或谁知道什么) 。 使用’/data/data/com.package.bla/cache/img198346262jpg’forms的File String ,它不能正常工作(文件在那里,但它是空的,因为相机没有保存任何内容) 。 到目前为止我尝试了什么: 创建文件后删除文件,如本例所示 。 但是,相机退出后文件不存在。 添加外部存储READ权限,以防万一 所以我不知道为什么图像没有被保存并且已经花费/浪费了大量时间测试并弄清楚它为什么不起作用。 分段: private void launchCamera() { Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); File outputDir = getActivity().getCacheDir(); File file = null; try { file = File.createTempFile(“img”, “jpg”, outputDir); } catch (IOException e) { e.printStackTrace(); } if (file != null) { mImageUri = Uri.fromFile(file); […]

什么是createChooser,当我必须使用Intents? 我能用这种方法做什么?

我一直在看看stackoverflow,但我没有find关于什么是“createChooser”的定义以及为什么我可以使用,并且在各种情况下使用它是很好的。 提前致谢。

如何制作pdf,xlsx和txt文件android的intent.setType?

我想从存储中仅选择pdf,xlsx和txt文件,但intent.setType只能执行一个文件(仅限eg.txt文件(或)pdf文件)。 是否可以通过编码intent.setType()来获取所有三个文件,并且有办法吗? 这是我的一些代码。 private void showFileChooser() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType(“application/pdf”); intent.addCategory(Intent.CATEGORY_OPENABLE); try { startActivityForResult( Intent.createChooser(intent, “Select txt file”), 0); } catch (android.content.ActivityNotFoundException ex) { // Potentially direct the user to the Market with a Dialog } }

Android状态栏通知 – 意图第二次获得旧版附加function

当我创建通过C2DM发送并在我的应用程序中收到的通知时,我想传递一些来自C2DM的推送通知附带的数据。 这在我第一次打开通知时工作正常。 然后根据活动的状态,使用onNewIntent或onCreate接收数据。 但是,如果我通过C2DM发送第二个推送通知,则会使用新数据正确接收,但是当从意图中获取额外内容时,我仍然从前一个消息中获取数据。 我想看到的标题和数据在通知中正确显示。 所以我的意图一定是错的。 如果活动正在运行,如果不是,则会发生这种情况。 要创建通知,请执行以下操作: NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_stat_notify_push, “Message received”, System.currentTimeMillis()); notification.flags |= Notification.FLAG_AUTO_CANCEL; notification.sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); notification.defaults |= Notification.DEFAULT_LIGHTS; Intent intent = new Intent(context, DesktopApp.class); intent.setAction(“android.intent.action.MAIN”); intent.addCategory(“android.intent.category.LAUNCHER”); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); intent.putExtra(“msg_id”, msg_id); intent.putExtra(“title”, title); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); notification.setLatestEventInfo(context, “New message”, […]

Android:隐式意图与广播接收者

我正在加速Android开发,隐含意图和广播接收器之间的区别尚不清楚。 我希望能够帮助区分这些概念以及何时使用这两个概念。 两者都接收意图,都对系统消息作出反应,那么为什么甚至需要广播接收器以及何时使用它而不是隐式意图和意图filter来接受隐式意图?