每当我在android studio中创建新项目时,我都会进入android:supportsRtl="true"
我的应用AndroidManifest文件.
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
...
</application>
Run Code Online (Sandbox Code Playgroud)
什么在app中使用,或者在我的应用AndroidManifest中添加或不添加时有什么优缺点.
android android-manifest android-applicationinfo android-studio
如何com.android.abc
在我的Android设备上找到特定的包或应用程序,例如:?
在Android Studio中创建新项目时,系统会提示您放下域名.
我已经知道您可以制作一个,但如果您想在Google Play商店分发您的应用,该怎么办?即使我永远不会使用我的域名,我是否需要购买一个网站来分发我的应用程序?
我正在ApplicationInfo
使用packageManager.getInstalledApplications(0)获取对象列表,并尝试根据它们是否是系统应用程序对它们进行分类.
有一段时间我一直在使用这里描述的技术,但是在我的应用程序中看到之后,一些应用程序不在非系统应用程序列表中(例如Facebook,当可用时要求系统在SD上安装自己)卡).在下次阅读ApplicationInfo.FLAG_SYSTEM的实际文档并了解它实际上没有过滤系统应用程序之后,我现在正在寻找一种新方法.
我的猜测是,系统和非系统应用程序的UID之间存在很大差距,我可以收集这些差异来进行区分,但到目前为止我还没有找到答案.我也查看了其他标志,例如ApplicationInfo.FLAG_EXTERNAL_STORAGE
,我支持API 1.5.
有没有人有这个真正的解决方案(不涉及FLAG_SYSTEM
)?
我是加密证书的新手,我正在试图找出Android应用程序的"./META-INF"文件夹下的"CERT.RSA"文件的组件.
据我了解,"CERT.RSA"用于验证同一目录下"CERT.SF"文件的签名.它应该包括证书元信息(主题,发行者,序列号等),由开发者私钥签名的"CERT.SF"签名,以及用于验证签名的公钥.
如何从"CERT.RSA"文件中获取上述组件?特别是,如何从"CERT.RSA"中检索公钥?
我尝试使用以下命令来显示签名证书.当人们谈论签名证书时,是否(以下输出)公钥或签名签名?
>> openssl pkcs7 -inform DER -print_certs -out cert.pem -in CERT.RSA
>> cat cert.pem
subject=/C=SE/ST=Kista/L=Kista/O=Javsym/OU=Mobile Visuals/CN=Eyvind Almqvist
issuer=/C=SE/ST=Kista/L=Kista/O=Javsym/OU=Mobile Visuals/CN=Eyvind Almqvist
-----BEGIN CERTIFICATE-----
MIICWzCCAcSgAwIBAgIETVPFgjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJT
RTEOMAwGA1UECBMFS2lzdGExDjAMBgNVBAcTBUtpc3RhMQ8wDQYDVQQKEwZKYXZz
eW0xFzAVBgNVBAsTDk1vYmlsZSBWaXN1YWxzMRgwFgYDVQQDEw9FeXZpbmQgQWxt
cXZpc3QwIBcNMTEwMjEwMTEwMTIyWhgPMjA2MTAxMjgxMTAxMjJaMHExCzAJBgNV
BAYTAlNFMQ4wDAYDVQQIEwVLaXN0YTEOMAwGA1UEBxMFS2lzdGExDzANBgNVBAoT
BkphdnN5bTEXMBUGA1UECxMOTW9iaWxlIFZpc3VhbHMxGDAWBgNVBAMTD0V5dmlu
ZCBBbG1xdmlzdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAjwLlwflQ2zoC
1EeCkICSqYTSkdv6Xj0YCqoQsuLJw0pwDbz5qRos61Ub0ZxWCa4TfXu1NJmuD4j+
LwQYvAR6JO985y4zjH1Ee5qZmHDC5yoSRko6P8B4KfmBm8E8CryhUjN7vNLUfG2o
XrmXK+g5KKTx3wzWlb4+AdAS7/NlDVkCAwEAATANBgkqhkiG9w0BAQUFAAOBgQAS
CxdfvR/LHPlULkCsoGw9/Q2ZhsTlPr7fZw32sef9vnz1hqd6iMDsLC2c34yRVJfb
t6dZCVO9/gWMURIZ7NmT36uBFAUB+XkGK+5/ot3YEJicEwmk/Nvj1Tzo3PjBX3ZD
lLBpEPgc3IUOhgMyzDR+ytgFlH0MkDps6FApunUpiQ==
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)
通过使用以下命令,我可以获得此证书的元信息:
>> keytool -printcert -file CERT.RSA
Owner: CN=Eyvind Almqvist, OU=Mobile Visuals, O=Javsym, L=Kista, ST=Kista, C=SE
Issuer: CN=Eyvind Almqvist, OU=Mobile Visuals, O=Javsym, L=Kista, ST=Kista, C=SE
Serial number: 4d53c582
Valid from: Thu Feb 10 06:01:22 EST 2011 until: Fri Jan 28 06:01:22 …
Run Code Online (Sandbox Code Playgroud) android digital-certificate digital-signature android-applicationinfo
我有一个类,有一个方法试图从清单中检索元数据.一切正常,除了我从应用程序信息创建的包返回空值
这是代码:
private int getCurrentVersion(){
int currVersion = 0;
try {
ApplicationInfo app = context.getPackageManager().getApplicationInfo(context.getPackageName(),PackageManager.GET_META_DATA);
Bundle bundle = app.metaData;
for (String key: bundle.keySet())
{
Log.d ("TEST", key + " is a key in the bundle");
}
Log.d("TEST","google: "+bundle.getString("com.google.android.gms.version"));
Log.d("TEST","version: "+bundle.getString("dbVersion"));
//currVersion = Integer.valueOf(bundle.getString("dbVersion"));
currVersion = 1;
} catch (NameNotFoundException e) {
e.printStackTrace();
} catch (NullPointerException e) {
e.printStackTrace();
}
return currVersion;
}
03-05 18:53:23.818: D/TEST(31400): com.google.android.gms.version is a key in the bundle
03-05 18:53:23.818: D/TEST(31400): dbVersion is a key in …
Run Code Online (Sandbox Code Playgroud) 我的应用程序在10秒内加载起始页面.在那个10秒的时间内,android屏幕是空白的.那时我想添加加载屏幕.如何添加?并在应用程序中告诉我如何知道起始页面正在加载?并告诉我如何在我的应用程序中做?
我正在开发一个有两个活动的应用程序:LoginActivity
和MainActivity
.当用户首次打开应用程序时,他将登录并保存其凭据(用户名和令牌)Preferences
.
现在,如果用户再次打开应用程序,则MainActivity
应该启动.我试图在Application类中切换这些活动,并从manifest中删除了LAUNCHER_ACTIVITY的intent-filter,但它不起作用.
是否有任何方法可以根据保存的首选项以编程方式在Launcher活动之间切换?
我目前正在使用以下代码:
List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);
Run Code Online (Sandbox Code Playgroud)
但它会返回由设备制造商和我安装的应用程序.如何限制它以便只返回我安装的应用程序?
android installed-applications android-package-managers android-applicationinfo
我已经做了一个小方法来在android中显示已安装的应用程序名称.但是当我给"name"属性显示异常错误时.当我给"packageName"时,该方法执行完美,并在列表中显示包名称
private void getInstalledApps() {
// TODO Auto-generated method stub
PackageManager packageManager=this.getPackageManager();
List<ApplicationInfo applist=packageManager.getInstalledApplications(0);
Iterator<ApplicationInfo> it=applist.iterator();
while(it.hasNext()){
ApplicationInfo pk=(ApplicationInfo)it.next();
String appname=pk.name.toString();
installedapplist.add(appname);
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,当我给String appname=pk.packageName.toString()
它工作正常,但当我给String appname=pk.name.toString()
程序抛出异常错误.请帮我解决问题.