Articles of android manifest

在Android M上,如何配置“直接共享”function(图像,文本)以及如何查询项目?

背景 根据Android M上的新function( 此处链接),应用程序外部的应用程序可以提供直接分享其活动之一的意图,例如,允许聊天应用程序将内容分享给确切的联系人,因此您同时选择聊天应用程序和联系人(一步而不是两步)。 这可以在这张图片上显示: 或者,至少这是我从中理解的。 这个问题 关于这个新function,我有两个问题: 在描述中,它们只显示清单中的内容,并提及使用“ChooserTargetService”。 为了提供文本和图像应该做些什么? 我想知道如何做相反的事情:如何查询所有这些“直接共享”项目(图像,文本和意图)并能够在自定义对话框中显示它们? 我想这样做,因为我自己有一个自定义对话框,允许选择分享内容和方式,而不仅仅是通过哪个应用程序。

如何安装应用程序两次而不干扰Android?

我有一个Android应用程序(让我们称为X),我想创建第二个应用程序X2,但基于另一个应用程序。 所以我将清单应用程序名称属性更改为X2也改变了包名…但是当我安装X2时,应用程序X被删除了! 我应该更改哪些属性,以便我可以在一台设备上独立安装这两个应用程序。 我正在研究eclispe。 改变之后。

如何以编程方式检查Android中的互联网连接的可用性?

我想以编程方式检查Android手机/模拟器中是否存在互联网连接。 因此,一旦我确定存在互联网连接,那么我将打电话给互联网。 所以它就像“嘿模拟器!如果你有互联网连接,那么请打开这个页面,否则doSomeThingElse();”

Android主题没有设置

我有一个拒绝应用于活动的主题 – 没有应用任何样式。 如果我没有为提供layout_width / layout_height属性,它也会收到运行时错误,表明没有应用Button类。 /res/values/themes.xml : true @style/Button @color/page_background_light @style/TextAppearance /res/values/styles.xml : 12sp @color/darkblue fill_parent wrap_content <!–#3C2F4F 20dip–> 和相关的清单设置 : 我错过了哪个明显的错误?

创建系统应用程序

我应该怎么做才能创建一个系统应用程序(获取在清单文件中使用android:sharedUserId=”android.uid.system”权限,而不会从包管理器收到有关认证问题的错误? 我使用带有固件的root电话。

可以在FileProvider中使用多个权限吗?

背景 我维护一个库,其核心function包括以编程方式捕获的屏幕截图与外部电子邮件应用程序共享。 我使用FileProvider来完成此操作,这意味着我的库的清单包含一个标记 : filepaths.xml的定义如下: 我的库的消费者有一个应用程序,它本身使用FileProvider来共享文件。 我的期望是,如果使用应用程序使用以下清单标记,则应该可以允许两个提供程序共享文件: 这个清单条目: 指定两个Provider权限, ${applicationId}.fileprovider (用于应用程序文件共享)和${applicationId}.bugshaker.fileprovider (用于库文件共享); 引用更新的filepaths.xml ,其中包含应用程序生成的文件和库生成的文件的单独目录定义: 构建应用程序后,我们已确认生成的清单已使用这些更新的值替换了正确的节点。 但是,当组装(成功)并运行使用此配置的应用程序时,我们会看到启动时崩溃: E: FATAL EXCEPTION: main Process: com.stkent.bugshakertest, PID: 11636 java.lang.RuntimeException: Unable to get provider android.support.v4.content.FileProvider: java.lang.NullPointerException: Attempt to invoke virtual method ‘android.content.res.XmlResourceParser android.content.pm.PackageItemInfo.loadXmlMetaData(android.content.pm.PackageManager, java.lang.String)’ on a null object reference at android.app.ActivityThread.installProvider(ActivityThread.java:5856) at android.app.ActivityThread.installContentProviders(ActivityThread.java:5445) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5384) at android.app.ActivityThread.-wrap2(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1545) at […]

从android apk文件解析versionCode

我知道.apk文件是.zip文件,但AndroidManifest.xml看起来是二进制的,当然grep或hex编辑器还没有成功提取versionCode。 有人知道如何解析或提取它吗? 我发现自己在一个Python脚本中打开了apks AndroidManifest.xml文件。

如何在产品风味中使用不同的启动器活动?

我正在开发一个Android库项目,在默认的src / main / AndroidManifest.xml中,MainActivity是启动器活动。 为了别的原因,我创造了产品口味。 是的,如果我想在不同的产品口味中触发/显示不同的活动炎,它是完美的。 但是,我想保留src / main /文件夹中的默认启动器活动 ,同时将另一个调味活动注册为新的启动器活动。 因此,对于不同的产品口味,我可以有不同的启动器活动,从中我仍然可以在src / main /中启动原始的“启动器”活动。 有人可以告诉我如何实现这一目标吗? 非常感谢。 笔记: 不建议将if (BuildConfig.FLAVOR.equals(“flavorName”))代码添加到原始启动器活动中。 因为我不想从别人那里修改生产代码(这是一个库项目)。 我尝试过manifestmerger和tools:replace ,但似乎它不适用于intent-filter (我注意到了intent-filter的元素合并策略总是如此)。 如果这可能有效,请您指导我如何使其工作? 谢谢。

启动配置活动时调用Widget onUpdate

我正在实现一个小部件,我面临以下问题: 1)当我将小部件添加到主屏幕时,即使我指定了配置活动,也会调用onUpdate 。 一旦我将其添加到主屏幕,就会发送APPWIDGET_ENABLED广播,然后发送APPWIDGET_UPDATE ,然后启动配置活动..这是一个错误吗? 在配置活动返回之前,我应该如何理解在调用的onUpdate方法? 我可以通过共享偏好值来实现,但我希望它的行为与开发人员指南中的内容相同,即不应该调用onUpdate方法。 2) onUpdate没有被调用每个updatePeriodMillis秒,它已被设置为10000 ,即10秒用于测试目的..我是否错过了Manifest文件中receiver声明中的内容? 我一直收到Lint警告导出的接收器不需要许可,但我认为这是一个Lint问题而不是我的错。 编辑 :我刚刚在参考文档中find了这个: 注意:updatePeriodMillis请求的更新不会每30分钟发送一次。 因此,我不会更新窗口小部件的频率是正确的,我将时间更改为1800000毫秒。 3)我想将自己的广播操作传递给窗口小部件提供程序,在Manifest中添加另一个receiver块是否正确,目标是相同的提供程序类,还是应该在包含APPWIDGET_UPDATE操作的intent-filter中添加另一个intent操作? 顺便说一句,我已经评论了我的第二个receiver块,这不是上述问题的原因。 我创建了另一个receiver块,因为我想将它声明为未导出,以便让intent-filter操作仅由我的应用程序代码而不是其他任何人触发。 AndroidManifest.xml中 my_widget_info.xml

Android错误“无法find显式活动类”

我有一个包含多个包的android项目。 在这种情况下,包的结构是com.WAPP.SetLocation是包含我想要运行的活动的包。 在我的清单中,com.WAPP被认为是基础包: 我的活动在我的清单中声明为: mainScreen活动显示正常,因为它位于com.WAPP包中。 但是当我尝试运行setLocationActivity时,我无法find显式的类错误。 这是我如何有意图参数: Intent i = new Intent(); i.setClassName(“com.WAPP.SetLocation”, “com.WAPP.SetLocation.setLocationActivity”); startActivity(i);