Ⅰ 求问android怎么在代码里获得系统文件的读写权限

本来以为就没有办法在应用程序这一层改系统时间了,后来在网上搜了好久,知道这个目的还是可以达到的。
第一个方法简单点,不过需要在Android系统源码的环境下用make来编译:
1. 在应用程序的AndroidManifest.xml中的manifest节点中加入
android:sharedUserId="android.uid.system"这个属性。
2. 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行
3. 使用mm命令来编译,生成的apk就有修改系统时间的权限了。
第二个办法麻烦点,不过不用开虚拟机跑到源码环境下用make来编译:
1. 同上,加入android:sharedUserId="android.uid.system"这个属性。
2. 使用eclipse编译出apk文件,但是这个apk文件是不能用的。
3. 用压缩软件打开apk文件,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件。
4. 使用目标系统的platform密钥来重新给apk文件签名。这步比较麻烦,
首先找到密钥文件,在我的Android源码目录中的位置
是"build argetproctsecurity",下面的platform.pk8和platform.x509.pem
两个文件。
然后用Android提供的Signapk工具来签名,signapk的源代码是
在"build oolssignapk"下,
用法为"signapk platform.x509.pem platform.pk8 input.apk output.apk",
文件名最好使用绝对路径防止找不到,也可以修改源代码直接使用。
这样最后得到的apk和第一个方法是一样的。
最后解释一下原理,首先加入android:sharedUserId="android.uid.system"这个属性。通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中。那么把程序的UID配成android.uid.system,也就是要让程序运行在系统进程中,这样就有权限来修改系统时间了。
只是加入UID还不够,如果这时候安装APK的话发现无法安装,提示签名不符,原因是程序想要运行在系统进程中还要有目标系统的platform
key,就是上面第二个方法提到的platform.pk8和platform.x509.pem两个文件。用这两个key签名后apk才真正可以放入系统进程中。第一个方法中加入LOCAL_CERTIFICATE := platform其实就是用这两个key来签名。这也有一个问题,就是这样生成的程序只有在原始的Android系统或者是自己编译的系统中才可以用,因为这样的系统才可以拿到 platform.pk8和platform.x509.pem两个文件。要是别家公司做的Android上连安装都安装不了。试试原始的Android 中的key来签名,程序在模拟器上运行OK,不过放到G3上安装直接提示"Package ... has no signatures that match those in shared user android.uid.system",这样也是保护了系统的安全。

Ⅱ Android新手,如何向表中写入用户名和代码,输入正确的用户名密码,如何确定是一致的并触发控件,求代码

代码是根据你们项目的实际情况而来的,比如用的什么数据库,后台返回的数据格式等
大致思路如下(比如说注册功能吧):
当用户输完注册信息并提交时,首先你得验证用户输入的用户名和密码是否符合你们定的规则(这个规则是你们定的并显示的提示给用户知道),规则的验证你应该会吧,纯java代码逻辑了。如果不合规则,你要提示给用户知道哪里不合规则
如果输入信息的格式符合你们定的规则,这时你就需要向服务器验证该用户名是否存在,如果已存在,提示用户重新选择一个用户名,如果不存在,表示该用户名可用,这时你就需要把用户的注册信息传递给服务器,由服务器端负责将注册信息插入数据库,以便用户登录时进行身份验证

Ⅲ 安卓4.4.2如何写入abd指令隐藏导航栏代码

搜一下:安卓4.4.2如何写入abd指令隐藏导航栏代码

Ⅳ 如何通过java代码写入字符串到安卓粘贴板中

import java.io.File; import java.io.OutputStream; import java.io.FileOutputStream; public class TestFile { public static void main(String[] args) throws Exception{ //在d盘上创建一个名为testfile的文本文件 File f = new File("D:"+File.separator+"testfile.txt"); //用FileOutputSteam包装文件,并设置文件可追加 OutputStream out = new FileOutputStream(f,true); //字符数组 String[] str = {"shanghai","beijing","guangdong","xiamen"}; for(int i =0; i<str.length; i++){ out.write(str[i].getBytes()); //向文件中写入数据 out.write('\r'); // \r\n表示换行 out.write('\n'); } out.close(); //关闭输出流 System.out.println("写入成功!"); } }

Ⅳ Android 怎样在应用程序中向文件里写入数据

  1. Android 怎样在应用程序中向文件里写入数据?在AndroidManifest.xml中添加, <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />,解决!

  2. 另外了解一下android的数据存储方式:文件流的读取,SQLite,Content Provider以及Preference.。 注:resource和assets中的文件用户方面是只可以读取不能够进行写的操作的。
    Content Provider作为程序之间唯一共享数据途径,用在这里不是很合适。所以,
    第一种方式,使用FileInputStream,FileOutputStreami类实现文件I/O操作,直接往手机中存储数据。
    第二种方式,使用SQLite,通过SQLiteDatabase类中方法操作数据。
    第三种方式,Preference用于存储简单数据类型的数据,一些设置信息的保存。个人认为用在这里最合适。 它利用键值对存储的。例:
    存储:SharedPreferences.Editor editor =sp.edit();
    editor.putString(KEY_TEXT,"yonghu");
    editor.commit();
    获取 :sp =getPreferences(MODE_PRIVATE);

    String result =sp.getString(KEY_TEXT,null)

  3. Android保存数据几种常用方法解析

    它应用于手机中能够帮助我们实现许多需求。比如今天为大家介绍的Android保存数据,就是其中一个比较重要的操作技巧。Android组件相关概念总结Android传值方法细讲Android横竖屏切换正确实现方式分享Android开发环境相关配置概览Android NDK具体作用讲解对于我们所熟悉的大部分软件都有一个比较典型的特点,应用现有的数据根据不同的需求来得到相应的结果。例如,我们最常用的Officeword、Excel、PowerPoint等办公软件,它们都是帮助我们完成某种特定的需求,同时由其所产生的数据或者文档又可以被其它软件所读取和做进一步的优化等等,在这个层面上可以看成是这些软件通过相同的文件标准来共享数据。但是对于Android最大的不同点在于,其平台上的应用软件所存储的数据或者文件是私有,仅仅可以通过它自身才可以访问其所包含的数据资源。那么基于这样的限制,该如何在Android平台上实现不同程序间的数据共享呢?答案非常简单 – 应用ContentProviders,这是建立在Android平台上用于定义统一的数据标准。Android提供了针对不同数据类型的ContentProviders来满足各种需要。例如:Image、Audio、Video和通讯录信息类等。阅读下边的文档之前,最好先熟悉Content Providers的概念。有了上边所提到Content Providers,接下来就要处理在共享文件过程中的存储环节了,这里有四种方法分别适用于不同情况的需求。它们都各自有相应的优缺点,所以当开发者决定选择应用哪种方法之前,先要考虑当前所操作的情况是否适合于所选择的方法。Preferences Files Databases Network 接下来将依次介绍上诉四个Android保存数据方法:Preferences从其保存数据的结构来分析,这是一个相对较轻量级的存储数据的方法。类似于我们常用的ini文件保存软件初始化设置,同样在Android平台常用于存储较简单的参数设置。例如,可以通过它保存上一次用户所作的修改或者自定义参数设定,当再次启动程序后依然保持原有的设置。通过Context.getSharedPreferences()方法来读写数值,这个方法通过设置name来使得同一个程序内的其它模块共享数据。如果不需要与其它模块共享数据,可以使用Activity.getPreferences()方法保持数据私有。需要着重强调一点,无法直接在多个程序间共享Preferences数据(不包括使用Content Providers)。通过一个实例来了解实际使用方法:import android.app.Activity; import android.content.SharedPreferences; public class Calc extends Activity { public static final String PREFS_NAME = "MyPrefsFile"; . . . . Override protected void onCreate(Bundle state){ super.onCreate(state); . . . . // Restore preferences SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); boolean silent = settings.getBoolean("silentMode", false); setSilent(silent); } @Override protected void onStop(){ super.onStop(); // Save user preferences. We need an Editor object to // make changes. All objects are from android.context.Context SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); SharedPreferences.Editor editor = settings.edit(); editor.putBoolean("silentMode", mSilentMode); // Don't forget to commit your edits!!! editor.commit(); } } Files从这是第二种方法,可以在设备本身的存储设备或者外接的存储设备中创建用于保存数据的文件。同样在默认的状态下,文件是不能在不同的程序间共享。写文件:调用Context.openFileOutput()方法根据指定的路径和文件名来创建文件,这个方法会返回一个FileOutputStream对象。读取文件:调用Context.openFileInput()方法通过制定的路径和文件名来返回一个标准的Java FileInputStream对象。
    (注意:在其它程序中将无法应用相同的路径和文件名来操作文件)另外编译程序之前,在res/raw/tempFile中建立一个static文件,这样可以在程序中通过Resources.openRawResource (R.raw.myDataFile)方法同样返回一个InputStream对象,直接读取文件内容。Databases在Android API中包括了应用SQLite databases的接口,每个程序所创建的数据库都是私有的,换句话说,程序间无法相互访问对方的数据库。在程序中创建SQLiteDatabase对象,其中包含了大部分与database交互的方法,例如:读取数据或者管理当前数据。可以应用SQLiteDatabase和其subClassSQLiteOpenHelper的create()方法来创建新的数据库。对于SQLitedatabase而言,其强大和方便的功能为Android提供了强有力的存储功能。特别是存储一些复杂的数据结构,例如:Android特别为通讯录创建了特有的数据类型,其中包含了非常多的子集而且涵盖了大部分的数据类型 “First Name” “Last Name” “PhoneNumber”和“Photo”等。Android可以通过Sqlite3 database tool来查看指定数据库中表的内容,直接运行SQL命令来快速便捷的直接操作SQLite database。

Ⅵ 安卓开发中能不能把对象写入文件并读取出来如果可以的话应该怎么操作最好给个示例

可以!去下载RE管理器不过要获取权限才行哦!

Ⅶ 我的安卓系统禁止应用程序写入怎么解决办法

在你手机中的软件权限管理中重新授权就可以解决了
一般是在你手机的设置和自带的安全中心中的
如果在手机上找不到的话那就得root手机了
可以先用pc版的应用宝root手机
步骤是:先打开电脑端软件-连接手机-打开手机USB调试-连接成功-工具箱-一键root
获取到权限之后,拔下手机,然后手机桌面上会有一个授权管理的
打开以后在里边的软件权限管理中重新授权
希望可以对你有帮助

Ⅷ 求一个简单存储android数据的java代码,就是将一个数据存入一个txt文件即可

//添加文件写入和创建的权限
Stringaaa=Environment.getExternalStorageDirectory()
+File.separator+"aaa.txt";
Filefile=newFile(aaa);
try{
if(!file.exists()){
file.createNewFile();
}
FileWriterpw=newFileWriter(file,true);
pw.write(aaa);
pw.flush();
pw.close();
}catch(IOExceptione){
e.printStackTrace();
}

Ⅸ AndroidTv开发怎么把自己修改的代码写进系统

要看你的目的是什么了.


* 如果你是需要替换原来的 launcher 应用,那么首先你需要满足以下两个条件:

  1. 你有该TV设备的 adb shell root 权限

  2. 你持有该TV设备的系统签名

以上两个条件满足了的话,以下是步骤:

  1. 编译你的代码,应用包名必须和原来一样.编译完后用系统签名文件进行签名.

  2. adb shell 进入 /system 分区(必须有root权限才能进入),在

    以下两个目录(早期版本只有第一个目录):

    /system/app

    /system/priv-app/

    找到你要替换的那个应用的位置.在 adb shell 下可以用 pm 这个内置命令方便的根据包名找apk位置,不展开,如需要请追问.

  3. /system分区默认是只读的,必须使用 adb remount 命令,或者在 adb shell 下使用 mount 命令,将此分区重新挂载为可读分区,才能写入.具体不展开,如果需要知道命令的具体格式可以再追问.

  4. 用 adb push 命令将原有的那个应用替换为你编译的那个应用,或者先将你编译的 apk 拷贝进设备,再在 adb shell 下用 cp 命令替换原应用.两种方法都需要root权限.

系统会实时监视 /system/app 和 /system/priv-app/ 这两个目录的变化,所以在你替换了原有位置的那个应用后,系统立刻就会自动识别这个应用. 一般应用推进去立刻就可以使用了. launcher这类特殊的应用有可能会造成系统异常,不过重启一次肯定也就可以运行了(前提是你自己的修改没有问题).

之所以需要系统签名,是因为系统会对系统应用的签名和系统自身签名比对,不一样的话是无法运行的.


* 如果你的目的仅仅是为了研究代码,并不需要替换原来的launcher,那就简单啦.步骤:

  1. 把你修改的launcher的应用包名改一下,不要和原来系统的那个包名一样就行.

  2. 如果你可以对这台TV设备连接adb调试,那就直接用eclipse编译并在此设备上运行就可以了.adb是可以由wifi无线连接的,一般电视开发都是用的adb无线连接.

  3. 如果你无法连接adb调试,那就弄一个自己的apk签名,然后用此签名打包apk,然后拷贝到这台TV设备上进行安装就可以了.

    这里用到签名是因为调试签名不能用作apk安装,必须是正式签名.


以上.

Ⅹ Android手机中如何写入NFC程序怎么能读到一张卡

Android读写NFC的步骤:
1.首先要在AndroidManifest.xml中声明如下配置信息:
使用<uses-permission>元素允许设备访问NFC硬件:
<uses-permission android:name="android.permission.NFC" />

2.使用<uses-sdk>元素设置最小SDK版本:
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" />

3.NFC TAG的发布系统:
当android设备扫描到一个NFC标签时,会自动寻找最适合的Activity来处理这个TAG,如果有多个Activity满足条件的话,会让用户来选择到底使用哪一个Activity来处理,可以理解为就是简单的事件响应与事件处理。

4.如何让一个Activity监听 ”当扫描到NFC标签时” 的这一个事件呢?使用intent filter。
可以理解为当检测到一个NFC标签时,系统自动创建一个相关的Intent对象,含有响应intent filter的Activity将处理这个Intent。
其中,intent filter声明如下:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" ></action>
<category android:name="android.intent.category.DEFAULT" ></category>
<data android:mimeType="text/plain" ></data>
</intent-filter>

5.读取NFC标签中NDEF格式的文本信息:
先判断手机支不支持NFC功能,若支持,是否已设置开启状态。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_write);
nfcTView=(TextView)findViewById(R.id.info_tv);
nfcAdapter = NfcAdapter.getDefaultAdapter(this);
if (nfcAdapter == null) {
nfcTView.setText("设备不支持NFC!");
finish();
return;
}
if (nfcAdapter!=null&&!nfcAdapter.isEnabled()) {
nfcTView.setText("请在系统设置中先启用NFC功能!");
finish();
return;
}
}

6.读取NFC卡的内容
private boolean readFromTag(Intent intent){
Parcelable[] rawArray = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
NdefMessage mNdefMsg = (NdefMessage)rawArray[0];
NdefRecord mNdefRecord = mNdefMsg.getRecords()[0];
try {
if(mNdefRecord != null){
readResult = new String(mNdefRecord.getPayload(),"UTF-8");
return true;
}
}
catch (UnsupportedEncodingException e) {
e.printStackTrace();
};
return false;
}