メモ
インポート
import android.content.Intent;
ソース
//インスタンス作成
Intent intent = new Intent();
// パッケージ名とクラス名をセット
intent.setClassName("jp.android.sample", "jp.android.sample.TopMenu");
// アプリ起動
startActivity(intent);
<メモ>
Android端末から、Windowsの共有フォルダにアクセスし、
ファイル操作。(コピー)
使用するライブラリは、JCIFSがよさそうだ。
でも、ライセンスがLGPL...
JCIFSは、CIFS/SMBのJava用ライブラリで、Windowsのファイルシステム
JCIFS ライセンス:LGPL (http://ja.wikipedia.org/wiki/GNU_Lesser_General_Public_License)
ダウンロード URL:http://jcifs.samba.org/
上記サイトからjcifs-1.3.17.zipをダウンロード
zipを解凍し、eclipseのlibフォルダにjcifs-1.3.17.jarをコピー。
必要なパーミッション(AndroidManifest.xml)
android.permission.INTERNET
android.permission.ACCESS_NETWORK_STATE
android.permission.ACCESS_WIFI_STATE
android.permission.ADD_SYSTEM_SERVICE
------
sample
Windowsの共有フォルダにあるファイルを参照し、Android端末にファイルを作成。
作成後、共有フォルダのファイルを削除。
private void download() {
SmbFile dir;
String host = "xxx.xxx.xxx.xxx";
String user = "user";
String password = "pass";
String pathTo = "/sdcard/sync/"; //Androidのダウンロード先
try {
//パスはの最後はバックスラッシュが(/)必要
String path = "smb://" + user + ":" + password + "@" + host + "/sync/";
dir = new SmbFile(path);
//ファイル一覧セット
SmbFile[] files = dir.listFiles();
for (int i = 0; i < files.length; i++) {
//ファイルパスを取得
String filePath = files[i].getPath();
Log.i(”XXX”,filePath);
// コピー元ファイル取得
SmbFileInputStream sfis = new SmbFileInputStream(filePath);
// コピー先フォルダ存在チェック
File dirTo = new File(pathTo);
if (!dirTo.exists()) {
dirTo.mkdirs();
}
// コピー先ファイル生成
FileOutputStream fos = new FileOutputStream(pathTo + files[i].getName());
//byte buf[] = new byte[256];
byte buf[] = new byte[1024];
int len;
while ((len =sfis.read(buf)) != -1){
fos.write(buf, 0, len);
}
//クローズ
fos.flush();
fos.close();
sfis.close();
//取得元ファイル削除
files[i].delete();
}
} catch (Exception e) {
e.printStackTrace();
Log.e("XXX", e.toString());
}
}
EclipseとADTの開発環境からUSB経由でアプリをダウンロードさせ、
アプリの動作が問題ないのことを確認し、apkファイルを作成し、apkファイルをタブレットにコピーし
インストールすると下記のエラー。
waiting for debugge
AndroidManifest.xmlでandroid:debuggable= trueに変更したのが原因かな。
android:debuggable=falseに変更し、apkファイル再作成。
念のためにタブレットを再起動。
再起動後、apkファイルコピー、インストール。
問題解決!
eclipseからエミュレーターを起動すると、下記のエラー。
Failed to allocate memory: 8
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
調べてみるとメモリーサイズの問題の可能性が。。
その為、eclipseの仮想デバイスマネージャーを開き、
問題がある仮想デバイスを開き、メモリーオプションのサイズを変更
1024 => 512
無事にエミュレータが起動。