清空联系人数据

命令:
adb shell
pm clean com.android.providers.contacts
代码::
rootCommand("com.android.contacts");
rootCommand("pm clear com.android.providers.contacts");  

import java.io.DataOutputStream;  
/**
     * 授权root用户权限
     * 
     * @param command 要执行的命令
     * */
    public boolean rootCommand(String command) {
                Process process = null;
                DataOutputStream dos = null;
                try {
                        process = Runtime.getRuntime().exec("su");
                        dos = new DataOutputStream(process.getOutputStream());
                        dos.writeBytes(command + "\n");
                        Toast.makeText(DemoActivity.this"执行命令成功"1).show();
                        dos.writeBytes("exit\n");
                        dos.flush();
                        process.waitFor();
                } catch (Exception e) {
                    Toast.makeText(DemoActivity.this"执行命令失败"1).show();
                    return false;
                } finally {
                    try {
                    if (dos != null) {
                        dos.close();
                    }
                    process.destroy();
                    } catch (Exception e) {
                    }
                }
                return true;
    }  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个使用结构体和指针的通讯录管理系统的完整代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_NAME_LEN 20 #define MAX_PHONE_LEN 15 #define MAX_EMAIL_LEN 30 #define MAX_CONTACTS 100 // 定义联系人结构体 typedef struct { char name[MAX_NAME_LEN]; char phone[MAX_PHONE_LEN]; char email[MAX_EMAIL_LEN]; } Contact; // 初始化通讯录 void init(Contact *contacts, int *size) { FILE *fp; int i = 0; fp = fopen("contacts.dat", "rb"); if (fp != NULL) { // 从文件中读取联系人数据 while (fread(&contacts[i], sizeof(Contact), 1, fp) == 1) { i++; } fclose(fp); } *size = i; } // 添加联系人 void add(Contact *contacts, int *size) { Contact newContact; printf("请输入联系人姓名:"); scanf("%s", newContact.name); printf("请输入联系人电话:"); scanf("%s", newContact.phone); printf("请输入联系人邮箱:"); scanf("%s", newContact.email); contacts[*size] = newContact; (*size)++; printf("添加成功!\n"); } // 显示联系人 void show(Contact *contacts, int size) { int i; printf("姓名\t电话\t\t邮箱\n"); for (i = 0; i < size; i++) { printf("%s\t%s\t%s\n", contacts[i].name, contacts[i].phone, contacts[i].email); } } // 删除联系人 void del(Contact *contacts, int *size) { int i, j; char name[MAX_NAME_LEN]; printf("请输入要删除的联系人姓名:"); scanf("%s", name); for (i = 0; i < *size; i++) { if (strcmp(contacts[i].name, name) == 0) { // 将后面的联系人往前移动一个位置 for (j = i; j < *size - 1; j++) { contacts[j] = contacts[j+1]; } (*size)--; printf("删除成功!\n"); return; } } printf("未找到该联系人!\n"); } // 查找联系人 void search(Contact *contacts, int size) { int i; char name[MAX_NAME_LEN]; printf("请输入要查找的联系人姓名:"); scanf("%s", name); printf("姓名\t电话\t\t邮箱\n"); for (i = 0; i < size; i++) { if (strcmp(contacts[i].name, name) == 0) { printf("%s\t%s\t%s\n", contacts[i].name, contacts[i].phone, contacts[i].email); return; } } printf("未找到该联系人!\n"); } // 修改联系人 void modify(Contact *contacts, int size) { int i; char name[MAX_NAME_LEN]; printf("请输入要修改的联系人姓名:"); scanf("%s", name); for (i = 0; i < size; i++) { if (strcmp(contacts[i].name, name) == 0) { printf("请输入联系人电话:"); scanf("%s", contacts[i].phone); printf("请输入联系人邮箱:"); scanf("%s", contacts[i].email); printf("修改成功!\n"); return; } } printf("未找到该联系人!\n"); } // 联系人 void clear(Contact *contacts, int *size) { *size = 0; printf("通讯录已!\n"); } // 保存联系人数据到文件中 void save(Contact *contacts, int size) { FILE *fp; fp = fopen("contacts.dat", "wb"); if (fp != NULL) { fwrite(contacts, sizeof(Contact), size, fp); fclose(fp); } } int main() { Contact contacts[MAX_CONTACTS]; int size = 0; int choice; init(contacts, &size); while (1) { printf("\n"); printf("1. 添加联系人\n"); printf("2. 显示联系人\n"); printf("3. 删除联系人\n"); printf("4. 查找联系人\n"); printf("5. 修改联系人\n"); printf("6. 联系人\n"); printf("7. 退出\n"); printf("请选择操作(1-7):"); scanf("%d", &choice); switch (choice) { case 1: add(contacts, &size); break; case 2: show(contacts, size); break; case 3: del(contacts, &size); break; case 4: search(contacts, size); break; case 5: modify(contacts, size); break; case 6: clear(contacts, &size); break; case 7: save(contacts, size); printf("谢谢使用,再见!\n"); exit(0); default: printf("输入有误,请重新输入!\n"); break; } } return 0; } ``` 这个程序使用了一个 Contact 结构体来表示一个联系人,然后使用一个 Contact 数组来存储所有联系人的信息。通讯录的各种操作都是通过调用不同的函数来实现的,每个函数都对 Contact 数组进行相应的操作。 在程序初始化时,会尝试从文件 `contacts.dat` 中读取联系人数据,这样就可以实现联系人数据的持久化。在退出程序时,会自动将联系人数据保存到文件中。 这个程序使用了指针来传递 Contact 数组和 size 变量,这样可以在调用函数时修改它们的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值