▼Androidメモ▼
ライブフォルダの作成
ライブフォルダを作成する。
![]()
ライブフォルダの設定
- ホームのウィジェットのない空き領域を長押し。
- ポップアップ「Folders」を選択。
- 設定したいライブフォルダを選択。
- ホームにライブフォルダが追加されるので、それをタップ。
ソースコード
LiveFolderEx.java package net.npaka.livefolderex; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.provider.LiveFolders; //ライブフォルダの生成 public class LiveFolderEx extends Activity { //生成時に呼ばれる @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent intent=getIntent(); String action=intent.getAction(); if (LiveFolders.ACTION_CREATE_LIVE_FOLDER.equals(action)) { setResult(RESULT_OK, createLiveFolder(this, LiveFolderProvider.CONTACTS_URI,//Uri "LiveFolderEx", //名前 R.drawable.icon)); //アイコン } else { setResult(RESULT_CANCELED); } finish(); } //ライブフォルダの生成 private Intent createLiveFolder( Context context,Uri uri,String name,int icon) { Intent intent = new Intent(); intent.setData(uri); intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_NAME,name); intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_ICON, Intent.ShortcutIconResource.fromContext(context,icon)); intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_DISPLAY_MODE, LiveFolders.DISPLAY_MODE_LIST); return intent; } }
LiveFolderProvider.java package net.npaka.livefolderex; import android.content.ContentProvider; import android.content.ContentValues; import android.database.Cursor; import android.database.MatrixCursor; import android.net.Uri; import android.provider.BaseColumns; import android.provider.LiveFolders; //ライブフォルダプロバイダ public class LiveFolderProvider extends ContentProvider { //URL public static final String AUTHORITY="net.npaka.livefolderex.test"; public static final Uri CONTACTS_URI= Uri.parse("content://"+AUTHORITY+"/test"); //生成時に呼ばれる @Override public boolean onCreate() { return true; } //カーソル private static final String[] CURSOR_COLUMNS=new String[] { BaseColumns._ID, LiveFolders.NAME, LiveFolders.DESCRIPTION, LiveFolders.INTENT, LiveFolders.ICON_PACKAGE, LiveFolders.ICON_RESOURCE }; //クエリー実行時に呼ばれる public Cursor query(Uri uri,String[] projection,String selection, String[] selectionArgs,String sortOrder) { android.util.Log.e("","flagA>"+uri); //マトリックスカーソル MatrixCursor mc=new MatrixCursor(CURSOR_COLUMNS); //Webページの表示 mc.addRow(new Object[]{ 0, //ID "Webページの表示", //名前 "Webページを表示する", //詳細 Uri.parse("http://npaka.net/"),//インテント getContext().getPackageName(), //アイコンパッケージ R.drawable.icon //アイコンリソース }); //ダイアラーの表示 mc.addRow(new Object[]{ 1, //ID "ダイアラーの表示", //名前 "ダイアラーを表示する", //詳細 Uri.parse("tel:117"), //インテント getContext().getPackageName(),//アイコンパッケージ R.drawable.icon //アイコンリソース }); return mc; } //更新時に呼ばれる(未使用) @Override public int update(Uri uri,ContentValues values,String selection,String[] selectionArgs) { return 0; } //挿入時に呼ばれる(未使用) @Override public Uri insert(Uri uri,ContentValues initialValues) { return null; } //削除時に呼ばれる(未使用) @Override public int delete(Uri uri,String selection,String[] selectionArgs) { return 0; } //種別の取得(未使用) @Override public String getType(Uri uri) { return null; } }
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="net.npaka.livefolderex" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <!--ライブフォルダ--> <activity android:name="LiveFolderEx" android:label="LiveFolderEx" android:icon="@drawable/icon"> <intent-filter> <action android:name="android.intent.action.CREATE_LIVE_FOLDER" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <!--ライブフォルダプロバイダ--> <provider android:authorities="net.npaka.livefolderex.test" android:multiprocess="true" android:name="LiveFolderProvider" /> </application> <uses-sdk android:minSdkVersion="7" /> </manifest>
−戻る−