私はアンドロイド開発には初めてです。私は連絡先のバックアップアプリを作成しています。どのように連絡先のバックアップアンドロイドでこれは何の作業プロセスは、いくつかを説明してください。この中で、この中で使用されているどのような方法やプロセス は、バックアップのために私にアンドロイドで連絡先を.csvまたは.vcfとしてバックアップする方法
-2
A
答えて
0
を説明も復元:
- 連絡先は、ユーザからの許可を読んで下さい。
- 連絡先を1つずつ読み取り、VCFファイルを作成します。復元のために
:
- は、連絡先は、ユーザからの書き込み権限を確認して下さい。
- VCFファイルを読み取り、解析します。
- VCFファイルの内容に基づいて連絡先を作成します。
1
package com.example.dekrinssoft.contactsbackup;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.AssetFileDescriptor;
import android.database.Cursor;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Environment;
import android.provider.ContactsContract;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.webkit.MimeTypeMap;
import android.widget.Button;
import android.widget.Toast;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
Button backup, restore;
String vfile;
FileOutputStream mFileOutputStream = null;
Cursor cursor;
ArrayList<String> vCard;
File f;
String storage_path;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
backup = (Button) findViewById(R.id.btnbkp);
restore = (Button) findViewById(R.id.btnres);
vfile = "contacts.vcf";
storage_path = Environment.getExternalStorageDirectory().toString() + "/" + vfile;
f = new File(storage_path);
backup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new LongOperation().execute("");
}
});
restore.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Intent intent = new Intent();
final MimeTypeMap mime = MimeTypeMap.getSingleton();
String tmptype = mime.getMimeTypeFromExtension("vcf");
final File file = new File(Environment.getExternalStorageDirectory().toString() + "/contacts.vcf");
intent.setDataAndType(Uri.fromFile(file), tmptype);
startActivity(intent);
}
});
}
private class LongOperation extends AsyncTask<String, Void, String> {
ProgressDialog progress;
@Override
protected void onPreExecute() {
progress = new ProgressDialog(MainActivity.this);
progress.setMessage("Loading.... ");
progress.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progress.setIndeterminate(true);
progress.setProgress(0);
progress.show();
}
@Override
protected String doInBackground(String... params) {
try {
if (!f.exists())
f.createNewFile();
mFileOutputStream = new FileOutputStream(storage_path, false);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
getVcardString();
return "Executed";
}
@Override
protected void onPostExecute(String result) {
Toast.makeText(MainActivity.this, " Succesfully backed up", Toast.LENGTH_LONG).show();
progress.dismiss();
}
}
private void getVcardString() {
vCard = new ArrayList<String>();
cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
if (cursor != null && cursor.getCount() > 0) {
cursor.moveToFirst();
for (int i = 0; i < cursor.getCount(); i++) {
get(cursor);
Log.d("TAG", "Contact " + (i + 1) + "VcF String is" + vCard.get(i));
cursor.moveToNext();
}
} else {
Log.d("TAG", "No Contacts in Your Phone");
}
try {
mFileOutputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void get(Cursor cursor) {
//cursor.moveToFirst();
String lookupKey = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_VCARD_URI, lookupKey);
AssetFileDescriptor fd;
try {
fd = this.getContentResolver().openAssetFileDescriptor(uri, "r");
FileInputStream fis = fd.createInputStream();
byte[] buf = new byte[(int) fd.getDeclaredLength()];
fis.read(buf);
String vcardstring = new String(buf);
vCard.add(vcardstring);
mFileOutputStream.write(vcardstring.toString().getBytes());
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
これはAndroidの開発にバックアップを連絡するためのコード ある任意の便利な感じ発生したエラーは私に言わせればちょうどダニボタン、 をクリックして、私はあなたたいかどうかをチェックし、それが正常に を実行して走りました。これは私のアプリのリンクです click to see my app
関連する問題
- 1. 私はiOSの連絡先バックアップを.vcfファイルformate
- 2. 選択した連絡先の.vcfファイルを作成する方法
- 3. 連絡先リストをvcf形式で抽出する
- 4. アンドロイドでプログラムで連絡先を追加する方法は?
- 5. アンドロイドの連絡先
- 6. アンドロイドの連絡先から連絡先を削除する
- 7. 連絡先リストをプログラムでアンドロイドに表示する方法は?
- 8. アンドロイドで連絡先を取得する方法は?
- 9. アンドロイドのリストビューで連絡先リストを取得する方法は?
- 10. ウェブサイトからAndroidの連絡先にvCard(.vcfファイル)を取得する方法
- 11. 私のPCに.vcf連絡先ファイルを開き、連絡先をすべて表示し続けると、私は閉じることができません。
- 12. 電話帳から.vcfファイルを生成する連絡先
- 13. アンドロイドで連絡先をバックアップするための進捗バーを追加する方法
- 14. 「電話連絡先」として連絡先を保存する
- 15. アンドロイドで連絡先をプログラムで共有する方法
- 16. アンドロイドでaction_editインテントを使用して連絡先を編集する方法は?
- 17. 連絡先のlookup_keyを使用して連絡先を削除する方法
- 18. iPhone連絡先をプログラムで.vcfファイルにエクスポート
- 19. Swift:連絡先を連絡先に追加する方法
- 20. アンドロイドで連絡先を共有する
- 21. シムまたはGoogleアカウントの連絡先のvcfファイルを作成する方法iPhoneの目的c
- 22. 印刷方法Nagiosの連絡先グループまたは連絡先ホストパフォーマンス出力データ
- 23. Powershellを使用して複数のvCard VCF連絡先ファイルをOutlookにインポートする方法は?
- 24. 新しい連絡先を追加しようとすると連絡先データを集計する方法は?
- 25. それを復元する方法へのバックアップの連絡先または.xmlファイルまたは.csvファイルとしてSDカードにSMS以降
- 26. 連絡先リスト内の連絡先をすべて削除する方法
- 27. アンドロイド:連絡先と同じ方法でSMSデータベースを取得するには?
- 28. アンドロイドの連絡先の値を更新する方法
- 29. 連絡先をアンドロイドのブロック/スパムリストに移動する方法
- 30. 連絡先フレームワークで更新された連絡先のIDまたはアイテムのみを見つける方法
ok ...いくつかのprogramticallyしてください – sanjay