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

androidoriginal

发布时间: 2022-09-08 05:02:48

㈠ 怎样查看android的apk文件的签名

以下介绍查看自己的应用签名及三方APK或系统APK签名信息,包含其中的MD5、SHA1、SHA256值和签名算法等信息。

1、查看自己的应用签名
可以通过两种方式查看
(1) debug的apk通过Eclipse查看,如下图:

可以查看签名的MD5、SHA1、SHA256值及签名算法

㈡ 刺客信条ANDROID提示THIS IS NOT THE ORIGINAL COPY 怎么处理

将主程序删除。然后关闭所有网络连接{gprs,3g,wifi}。
然后重新安装。再进入游戏即可。数据包不必删除。
进入游戏后只要不出现“THIS IS NOT THE ORIGINAL COPY”就可以打开网络了。
注:若没有提前下载好数据包,进入游戏后会叫你下载,这时候打开wifi时没事的

㈢ Android实现拨号功能

请检查你这个activity的permission,有没有加上以下的设置。
在AndroidManifest.xml里面添加。

<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.CALL_PRIVILEGED" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />

另外帮你贴下android自带拨号程序的核心部分,请自己参照下吧~~
public class OutgoingCallBroadcaster extends Activity {

private static final String PERMISSION = android.Manifest.permission.PROCESS_OUTGOING_CALLS;
private static final String TAG = "OutgoingCallBroadcaster";
private static final boolean LOGV = true;//Config.LOGV;

public static final String EXTRA_ALREADY_CALLED = "android.phone.extra.ALREADY_CALLED";
public static final String EXTRA_ORIGINAL_URI = "android.phone.extra.ORIGINAL_URI";

private Phone mPhone;

@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);

mPhone = PhoneApp.getInstance().phone;

Intent intent = getIntent();
if (LOGV) Log.v(TAG, "onCreate: Got intent " + intent + ".");

String action = intent.getAction();
String number = PhoneNumberUtils.getNumberFromIntent(intent, this);
if (number != null) {
number = PhoneNumberUtils.stripSeparators(number);
}
final boolean emergencyNumber =
(number != null) && PhoneNumberUtils.isEmergencyNumber(number);

boolean callNow;

if (getClass().getName().equals(intent.getComponent().getClassName())) {
// If we were launched directly from the OutgoingCallBroadcaster,
// not one of its more privileged aliases, then make sure that
// only the non-privileged actions are allowed.
if (!Intent.ACTION_CALL.equals(intent.getAction())) {
Log.w(TAG, "Attempt to deliver non-CALL action; forcing to CALL");
intent.setAction(Intent.ACTION_CALL);
}
}

/* Change CALL_PRIVILEGED into CALL or CALL_EMERGENCY as needed. */
if (Intent.ACTION_CALL_PRIVILEGED.equals(action)) {
action = emergencyNumber
? Intent.ACTION_CALL_EMERGENCY
: Intent.ACTION_CALL;
intent.setAction(action);
}

if (Intent.ACTION_CALL.equals(action)) {
if (emergencyNumber) {
finish();
return;
}
callNow = false;
} else if (Intent.ACTION_CALL_EMERGENCY.equals(action)) {
if (!emergencyNumber) {
finish();
return;
}
callNow = true;
} else {
finish();
return;
}

// Make sure the screen is turned on. This is probably the right
// thing to do, and more importantly it works around an issue in the
// activity manager where we will not launch activities consistently
// when the screen is off (since it is trying to keep them paused
// and has... issues).
//
// Also, this ensures the device stays awake while doing the following
// broadcast; technically we should be holding a wake lock here
// as well.
PhoneApp.getInstance().wakeUpScreen();

/* If number is null, we're probably trying to call a non-existent voicemail number or
* something else fishy. Whatever the problem, there's no number, so there's no point
* in allowing apps to modify the number. */
if (number == null || TextUtils.isEmpty(number)) callNow = true;

if (callNow) {
intent.setClass(this, InCallScreen.class);
startActivity(intent);
}

Intent broadcastIntent = new Intent(Intent.ACTION_NEW_OUTGOING_CALL);
if (number != null) broadcastIntent.putExtra(Intent.EXTRA_PHONE_NUMBER, number);
broadcastIntent.putExtra(EXTRA_ALREADY_CALLED, callNow);
broadcastIntent.putExtra(EXTRA_ORIGINAL_URI, intent.getData().toString());
broadcastIntent.putExtra(EXTRA_INTENT_FROM_BT_HANDSFREE,
intent.getBooleanExtra(OutgoingCallBroadcaster.EXTRA_INTENT_FROM_BT_HANDSFREE, false));

if (LOGV) Log.v(TAG, "Broadcasting intent " + broadcastIntent + ".");
sendOrderedBroadcast(broadcastIntent, PERMISSION, null, null,
Activity.RESULT_OK, number, null);

finish();
}

}

安卓手机百度文库里没有original文件夹

安卓手机网络文库里是没有original文件夹的。

网络安装目录,如果是安装在手机上,就是本机内存,如果是SD卡上,就从SD卡里面找。

文件目录是: /searchbox/downloads/, 并没有original文件夹。

下图为例:

㈤ android 怎么获得bluetootha2dpservice

这是个隐藏类,你可以通过反射来使用它,也可以去这看看隐藏API和Internal包的使用

首先我们要明白为什么隐藏API(有@hide标记)和Internal包不能使用。
当我们使用android的SDK进行开发的时候都会用到一个非常重要的jar文件--android.jar(SDK_DIR/platforms/platform-X/android.jar,X是API等级)。这个包中移除了所有被标记的尾@hide的类、方法、枚举、字段和Internal包。当我们的程序在设备上运行的时候会加载设备上的一个framework.jar的文件,它包含了移除的部分。

所以我们的思路是想办法得到framework.jar将那些缺少的API拿出来放到android.jar中。当然这些都可以通过编译源码来解决,但那样太过麻烦。下面我介绍一种简单的方法来获取这些内容。

1,获取framework.jar
刚才也说了,设备上有这个文件,那么我们就从设备上来取。通过adb pull命令(也可以用DDMS):
adb pull /system/framework/framework.jar
我们需要该包中的classes.dex文件。这里从4.0以下模拟器上取,真机上一般是经过优化了的.odex文件,而4.0以上的模拟器中的这个文件中没有classes.dex文件。
如果需要4.0以上的可以在网上找找。

2,将framework.jar改成framework.zip,解压,得到里面的classes.dex文件。

3,将.dex文件转换成.jar格式。这里用到了dex2jar这个工具,知道反编译的同学都知道这个工具,没有的可以在网上找找。
转换结束后会得到一个classes.dex.dex2jar.jar文件。

4,重命名classes.dex.dex2jar.jar成classes.dex.dex2jar.zip,解压。得到以下文件。

5,将SDK_DIR/platforms/platform-X/中的android.jar拷贝出来,改成android.zip解压,得到以下结构的文件。将上面得到的文件复制到下面文件夹中(覆盖替换)。

6,全选上面的文件,打包成original-android.zip。
7,将original-android.zip改成original-android.jar。

OK,完成。
最简单的方法就是将这个包直接导入我们的工程,在工程中就可以使用隐藏API和Internal包了。

㈥ android 怎样实现 效果

着色(Tint Color)是iOS7界面中的一个.设置UIImage的渲染模式:UIImage.renderingMode重大改变,你可以设置一个UIImage在渲染时是否使用当前视图的Tint Color。UIImage新增了一个只读属性:renderingMode,对应的还有一个新增方法:imageWithRenderingMode:,它使用UIImageRenderingMode枚举值来设置图片的renderingMode属性。该枚举中包含下列值:
UIImageRenderingModeAutomatic // 根据图片的使用环境和所处的绘图上下文自动调整渲染模式。
// 始终绘制图片原始状态,不使用Tint Color。
// 始终根据Tint Color绘制图片,忽略图片的颜色信息。

renderingMode属性的默认值是UIImageRenderingModeAutomatic,即UIImage是否使用Tint Color取决于它显示的位置。其他情况可以看下面的图例

㈦ 为什么用UC浏览器保存图片,图片的名字都是original.jpg。我用的是android UC HD版

您好,很高兴为您服务!
图片名称是对方网站有关系的,并非UC浏览器可以设置图片名称的,请友友了解!
如果仍有问题,请您继续向我们反馈,我们会第一时间为您跟进。

㈧ android怎样调用@hide和internal API

Android有两种类型的API是不能经由SDK访问的。

第一种是位于com.android.internal包中的API。我将称之为internal API。第二种API类型是一系列被标记为@hide属性的类和方法。从严格意义上来讲,这不是一个单一的API,而是一组小的被隐藏的API,但我仍将其假设为一种API,并称之为hidden API。

Hidden API 例子

你可以查看一下android的源码,并能找到一些变量、函数和类等,都被@hide属性标记了。

下面的例子就是在WifiManager(API 10源码)中隐藏的变量。

另一个例子是在WifiManager(API 10源码)中隐藏了setWifiApEnabled函数。

因此,只要你看到@hide属性,那你看到的就是hidden API。

Internal和hidden API的区别

Hidden API之所以被隐藏,是想阻止开发者使用SDK中那些未完成或不稳定的部分(接口或架构)。举个例子,Bluetooth API在API 5(Android 2.0)上才开放;在API 3 和4上都是用@hide属性隐藏了。当这些API被验证和清理后,Google的开发者会移除@hide属性,并让其在API 5官方化。很多地方在API 4 和5之间发生了变化。如果你的程序依赖某些隐藏的API,当其部署到新的平台上时,就有可能陷入困境。

对于internal API来说,从来都没有计划将其开放出来。它就是Android的“内部厨房”,对开发者来说,应该将其视作黑盒。凡事都会有变化的。如果你依赖某些internal API,也有可能在新的Android release上,这些internal API发生变化,从而令你失望。

总结一下区别:

Hidden API = 进行中的工作;

Internal API = 黑盒;

Internal和hidden API的编译时 vs. 运行时

当你使用Android SDK进行开发的时候,你引用了一个非常重要的jar文件——android.jar。它位于Android SDK平台的文件夹中(SDK_DIR/platforms/platform-X/android.jar,其中,X表示API等级)。这个android.jar移掉了com.android.internal包中所有的类,也移掉了所有标记有@hide的类,枚举,字段和方法。

但当你在设备上启动应用程序时,它将加载framework.jar(简单来说,它和android.jar等同),而其未移掉internal API和hidden API。(但它对开发者来说,并不能友好地访问,因此,我将向大家展示不通过反射如何使用这些API)。

关于internal API,还有一件事需要说明。Eclipse的ADT插件增加了一个额外的规则,那就是禁止使用com.android.internal包中的任何东西。所以,即便是我们可以拿到最原始的android.jar(未删减版),也没有轻松的办法通过Eclipse使用这些internal API。

你可以亲自检查一下。创建一个新的Android工程(或者使用已有的)。查看一下它引用的类库(右击project Properties –> Java Build Path –> Libraries)。

重要的总结:internal和hidden API在SDK中是按照一样的方式处理的(都从android.jar中移除了),但internal API更惨的是,还被Eclipse的ADT插件显式禁止了。

不通过反射使用internal和hidden API

这些文章的终极目标是让开发者能够不通过反射使用Internal和Hidden API。如果你完成了接下来部分中描述的步骤,你将能使用这些Internal和Hidden API,如同公开的API。你不再需要使用反射。

注:如果你正在使用这些非公开的API,你必须知道,你的程序有着极大的风险。基本上,无法保证在下一次的Android OS更新时,这些API不被破坏,也无法保证不同的运营商有着一致的行为。你自己决定吧。

接下来有三个场景:

1. Internal 和hidden API都可用(场景A)

2. 只Hidden API可用(场景B)

3. 只Internal API可用(场景C)

场景A是B、C的总和。场景B是最简单的一个(不需要对Eclipse的ADT修改)。

场景A:阅读Part1, 2, 3, 4, 5

场景B:阅读Part1, 2, 3, 5

场景C:阅读Part1, 2, 3, 4, 5

我解释了为什么我们不通过反射就会很难使用internal和hidden API。这是因为android.jar中就没包含这些API,因此,没人能够在编译时引用这些类。

这篇文章将描述如何还原最初的android.jar。这将允许我们像使用公开的API那样使用internal和hidden API。

如何得到原版android.jar?

我们需要修改android.jar,这样它才能包含所有的*.class文件(包括internal和hidden API类)。有两种办法:

1) Android是一个开源工程。我们可以下载源码并搭建编译环境,这样它就不能移除那些internal和hidden的类了。这个办法比较困难;

2) 每个模拟器或真机在运行时都会有一个等同android.jar的东西。我们可以从这里拿到jar文件,提取出原始的.class文件,并拷贝到Android SDK的android.jar中。

我将采用方案2。它易于开始,还不需要搭建Linux环境及编译环境等。

从设备上获取framework.jar

你可以使用命令行(adb pull)从模拟器或设备上下载文件,或者使用DDMS(借助Eclipse或SDK中的应用)。

注意:模拟器通常在.dex文件中包含代码,而真机一般在优化版的dex文件中包含代码——odex文件。操作odex文件比较困难,这也是为什么我选择模拟器的原因。

与Android SDK中的android.jar等同的文件是framework.jar。这个文件位于设备的:/system/framework/framework.jar

adb pull /system/framework/framework.jar

当framework.jar从设备上下下来之后,重命名为framework.zip并解压到独立的文件夹中,看起来是这个样子的:

classes.dex正是我们需要的。

创建framework-classes.zip

首先,我们需要把.dex文件转换成.jar格式。你可以使用通用的工具dex2jar。只需要运行:

dev2jar classes.dex

当转换结束时,你应该得到了classes.dex.dex2jar.jar文件。重命名为framework-classes.zip。使用zip查看器,进入到framework-classes.zip/com/android/internal/:

恭喜你,你已经拥有了所有的.class文件,包括internal和hidden API(尽管截图只确认了internal部分)。

创建original-android.jar

Android SDK的android.jar位于ANDROID_SDK/platforms/android-X/android.jar(X表示API等级)。

拷贝android.jar成custom-android.jar。解压至custom-android文件夹。将framework-classes.zip中所有的.class文件拷贝到custom-android文件夹中(你需要覆盖所有已经存在的.class文件)。

然后,压缩custom-android文件成original-android.zip。重命名为original-android.jar。

步骤总结

1. 选择你的目标平台X

2. 创建目标平台X的模拟器

3. 启动模拟器,下载/system/framework/framework.jar

4. 重命名framework.jar -> framework.zip

5. 从framework.zip中抽取classes.dex

6. 使用dex2jar工具,将其转换成classes.jar

7. 重命名classes.jar -> framework-classes.zip

8. 拷贝android.jar –> custom-android.zip

9. 解压custom-android.zip至custom-android文件夹

10. 将framework-classes.zip中所有文件拷贝至custom-android文件夹(覆盖存在的文件)

11. 压缩custom-android文件夹成original-android.zip

12. 重命名original-android.zip -> original-android.jar

打完收功。

㈨ android中闹钟程序是怎样监听系统时间的

windows应用程序 都是通过调用API 实现 功能的
你要做的功能 很简单
CTime tm;
tm=CTime::GetCurrentTime();
然后 判断tm 这个时间 是不是 你定的闹钟时间
是则 调用 MMplay() 吧 放一首歌就是了

智能机也一样
不管是什么平台 都有API 提供 你查一下 手册

㈩ android怎么调用系统日历的添加事件界面

详细修改如下:
1.首先准备各种大小的ic_newevents_numberindication.9.png图片。
如果是搞开发的,在以前的项目中都可以找到的。
2.定义个未读信息支持的app事件xml,这个支持短信,日历,电话,邮件:
b/packages/apps/Launcher3/res/xml/unread_support_shortcuts.xml
内容如下:
+<?xml version="1.0" encoding="UTF-8"?>
+<unreadshortcuts xmlns:launcher="http://schemas.android.com/apk/res-

auto/com.android.launcher3">
+
+ <shortcut
+ launcher:unreadPackageName="com.android.dialer"
+ launcher:unreadClassName="com.android.dialer.DialtactsActivity"
+ launcher:unreadType="0"
+ launcher:unreadKey="com_android_contacts_unread"
+ />
+ <shortcut
+ launcher:unreadPackageName="com.android.mms"
+ launcher:unreadClassName="com.android.mms.ui.BootActivity"
+ launcher:unreadType="0"
+ launcher:unreadKey="com_android_mms_unread"
+ />
+ <shortcut
+ launcher:unreadPackageName="com.android.email"
+ launcher:unreadClassName="com.android.email.activity.Welcome"
+ launcher:unreadType="0"
+ launcher:unreadKey="com_android_email_unread"
+ />
+ <shortcut
+ launcher:unreadPackageName="com.android.calendar"
+ launcher:unreadClassName="com.android.calendar.AllInOneActivity"
+ launcher:unreadType="0"
+ launcher:unreadKey="com_android_calendar_unread"
+ />
+ <shortcut
+ launcher:unreadPackageName="com.orangelabs.rcs"
+

launcher:unreadClassName="com.mediatek.rcse.activities.ChatMainActivity"
+ launcher:unreadType="0"
+ launcher:unreadKey="com_android_rcse_unread"
+ />
+ <shortcut
+ launcher:unreadPackageName="com.android.cellbroadcastreceiver"
+

launcher:unreadClassName="com.android.cellbroadcastreceiver.CellBroadcastLis

tActivity"
+ launcher:unreadType="0"
+ launcher:unreadKey="com_android_calendar_unread"
+ />
+ <shortcut
+ launcher:unreadPackageName="com.mediatek.cellbroadcastreceiver"
+

launcher:unreadClassName="com.mediatek.cellbroadcastreceiver.CellBroadcastLi

stActivity"
+ launcher:unreadType="0"
+ launcher:unreadKey="com_mediatek_cellbroadcastreceiver_unread"
+ />
+</unreadshortcuts>

3.添加几种需要用到而之前没有的权限:

b/packages/apps/Launcher3/AndroidManifest.xml
<original-package android:name="com.android.launcher3" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/>
+ <uses-permission

android:name="android.permission.ADVANCED_WIDGET_API"/>
+ <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
+ <uses-permission android:name="android.permission.INSTALL_PACKAGES"/>
+ <uses-permission android:name="android.permission.DELETE_PACKAGES"/>

4.定义要用的字符串:b/packages/apps/Launcher3/res/values/attrs.xml
+ <!-- XML attributes used by unread_support_shortcuts.xml -->
+ <declare-styleable name="UnreadShortcut">
+ <attr name="unreadPackageName" format="string" />
+ <attr name="unreadClassName" format="string" />
+ <attr name="unreadKey" format="string" />
+ <attr name="unreadType" format="integer" />
+ </declare-styleable>

5.定义显示的数字大小尺寸,这个可以自己修改到满意,这个是四行五列排列的

1080*1920屏幕大小的尺寸。
b/packages/apps/Launcher3/res/values/dimens.xml
+ <!-- Add for unread events feature. -->
+ <dimen name="unread_minWidth">20dp</dimen>
+ <dimen name="hotseat_unread_margin_top">16dp</dimen>
+ <dimen name="hotseat_unread_margin_right">8dp</dimen>
+ <dimen name="folder_unread_margin_top">16dp</dimen>
+ <dimen name="folder_unread_margin_right">14dp</dimen>
+ <dimen name="workspace_unread_margin_top">16dp</dimen>
+ <dimen name="workspace_unread_margin_right">16dp</dimen>
+ <dimen name="app_list_unread_margin_top">20dp</dimen>
+ <dimen name="app_list_unread_margin_right">16dp</dimen>
+ <dimen name="unread_text_margin">8dp</dimen>
+ <dimen name="unread_text_number_size">14sp</dimen>
+ <dimen name="unread_text_plus_size">10sp</dimen>

热点内容
如何知道密码锁有没有nfc 发布:2024-05-18 11:58:09 浏览:961
单片机c语言模块化编程 发布:2024-05-18 11:53:16 浏览:644
win7xp共享打印机拒绝访问 发布:2024-05-18 11:51:00 浏览:847
zkeys金属服务器怎么使用 发布:2024-05-18 11:49:31 浏览:581
电信路由器密码设置无线路由器怎么设置密码 发布:2024-05-18 10:55:00 浏览:647
安卓系统是属于哪个国家的手机 发布:2024-05-18 10:41:41 浏览:99
linux运维前景 发布:2024-05-18 10:24:44 浏览:658
c语言crc算法 发布:2024-05-18 09:59:03 浏览:644
linuxc编程视频 发布:2024-05-18 09:55:58 浏览:273
如何建造一个好的服务器 发布:2024-05-18 09:54:30 浏览:524