2011.04.06 14:42
     
 
       private String[] getHomeScreens()
{
String[] homes;
PackageManager pm =  getPackageManager();          // PackageManager 생성
Intent homeIntent = new Intent(Intent.ACTION_MAIN);   // Action 값이 ACTION_MAIN
homeIntent.addCategory(Intent.CATEGORY_HOME);    // Category 값이 CATEGORY_HOME 
                
                //위 Intent의 조건을 만족시켜 주는 ResolveInfo 리스트를 구한다. 
List<ResolveInfo> homeApps = pm.queryIntentActivities(homeIntent, PackageManager.GET_ACTIVITIES);
homes = new String[homeApps.size()];
for(int i=0; i<homeApps.size(); i++)
{
ResolveInfo info = homeApps.get(i);
//구해진 ResolveInfo 를 통해서 PackageName을 가져온다.
homes[i] = info.activityInfo.packageName; 
}
return homes;
}
신고
Posted by 구름같은사나이
2011.04.06 14:35

    - Android 2.2 이상 동작 됩니다.
    - Android 2.1 의 경우 밝기 모드를 변경 시켜 줄 수 없다. 2.2 부터 MODE 값 변경이 생겼다.
 
                // 먼저 현재 밝기 모드를 수동 밝기 모드로 변경 한다. 
    Settings.System.putInt(context.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS_MODE,
Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);

   // 밝기 값에 value 값을 적용한다. ( value : 0~ 255 값 )
    Settings.System.putInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, value);
    
    // 변경된 밝기 값을 적용한다. ( temp 값은 밝기 값 )
WindowManager.LayoutParams lp=w.getAttributes();
lp.screenBrightness = (float)temp; 
w.setAttributes(lp);
 
신고
Posted by 구름같은사나이
2011.04.04 17:04
           

 
                WifiManager wManager = (WifiManager)context.getSystemService(Activity.WIFI_SERVICE);

if(wManager.getWifiState() == WifiManager.WIFI_STATE_ENABLED || 
wManager.getWifiState() == WifiManager.WIFI_STATE_ENABLING )
{
wManager.setWifiEnabled(false);
}
else
{
wManager.setWifiEnabled(true);
}
신고
Posted by 구름같은사나이
2011.04.04 17:03
    
   
    BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
    
    //현재 Bluetooth가 켜져 있는지, 혹은 켜는 중인지 확인 한다. 
if(adapter.getState() == BluetoothAdapter.STATE_TURNING_ON || 
    adapter.getState() == BluetoothAdapter.STATE_ON)     
{
adapter.disable();   // Bluetooth Off
}
else
{
           adapter.enable();     // Bluetooth On
}
신고
Posted by 구름같은사나이
2011.03.28 00:33


dos -> telnet localhost 5554 -> power capacity 80 ( 배터리 잔량을 80%로 주고 테스트 한다. ) 
신고
Posted by 구름같은사나이
2011.03.26 13:31
receiver com.battery.SBattery.Receiver.SBatteryWidgetProvider: android.content.ReceiverCallNotAllowedException: IntentReceiver components are not allowed to register to receive intents

안드로이드 프로그래밍 시, 이와 같은 오류를 만날 가능성이 있다.
이유인즉, 리시버 안에 리시버를 등록 할 수 없다는 것이다.

해결책이 있다.

넘겨주는 context의 값을 context.getApplicationContext() 로 설정 하라.

오류가 없어질 것이다. ( 안드로이드 2.2 테스트 ) 
신고
Posted by 구름같은사나이
2011.03.16 10:40

구글 GMail Smtp 를 이용하여 메일 전송하기 입니다.

간단한 예제만 올림. (설명은 생략~)

준비 사항 : 3개의 개별 라이브러리가 필요. mail.jar , activation.jar , additionnal.jar


1. 메일 전송을 담당하는 클래스 생성

import java.util.Date;

import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class EmailTest{
private String mailhost = "smtp.gmail.com";
private Session session;
public AllModel_Security_Mail(String user, String pwd)
{
Properties props = new Properties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host", mailhost);
session = Session.getInstance(props, new EmailAuthenticator(user,pwd));
}
public void sendMail(String subject,String body, String sender,String recipients)
throws Exception
{
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(sender));
msg.setSubject(subject);
msg.setContent(body, "text/html;charset=EUC-KR");
msg.setSentDate(new Date());
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));
Transport.send(msg);
}
class EmailAuthenticator extends Authenticator {
private String id;
private String pw;
public EmailAuthenticator(String id, String pw) {
super();
this.id = id;
this.pw = pw;
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(id, pw);
}
}
}

2. 메일 전송 클래스내 구현부

try
{
EmailTest mail = new EmailTest("sender@gmail.com","password");  //보내는 사람 메일 주소와 암호
      
        //순서대로, 제목 - 본문 - 보내는 사람 메일 - 받는 사람 메일 
mail.sendMail("메일에 들어가는 제목 부분 입니다.", 
     "메일에 들어가는 본문 부분 입니다.",
             "sender@gmail.com",  "test@naver.com");                      
        
}catch (Exception e) {}


신고
Posted by 구름같은사나이
2011.03.10 18:10


다음 클래스는 전화번호를 가지고 DB에 저장되어 있는 Contact의 id 값과 이름. 그리고 그에 해당되는 사진 photo값을 가져오는 
클래스 이다.
* 2.2 기준입니다. *

...

public class ContactInfo
{
String name;
String id;
final String[] CONTACTS_PROJECTION = new String[]{
ContactsContract.CommonDataKinds.Phone.CONTACT_ID,
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME 
}; 
                
                //본 생성자에서는 인자값으로 넘어온 전화번호(number)에 해당되는 contact id 와 catact name을 
               가져와서 멤버 변수 name과 id에 저장해 준다.

public ContactInfo(ContentResolver resolver, String number)
{
Cursor cursor = resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI , 
CONTACTS_PROJECTION, 
ContactsContract.CommonDataKinds.Phone.NUMBER+"=?", 
new String[]{number}, null);
if(cursor.getCount() < 1)
{
name = null;
id = null;
}
else
{
cursor.moveToFirst();
id = cursor.getString(0);
name = cursor.getString(1);
}
cursor.close();
}

               //위 생성자에서 구해진 id 값을 기준으로 해서 id와 name에 일치하는 Contact의 사진을 가져와서
               Bitmap 형식으로 반환해 준다.

public Bitmap getPhoto()
{
if(id == null) return null;
Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,Long.parseLong((id)));
InputStream data = ContactsContract.Contacts.openContactPhotoInputStream(getContentResolver(), uri);
if(data != null)
return BitmapFactory.decodeStream(data);
else
return null;
}
}
신고
Posted by 구름같은사나이
2011.03.10 11:18

- 안드로이드 2.2 기준 -


1) 아래와 같이 Intent 를 날리면, Contact 주소록과 함께, 연락처 항목을 선택 할 수 있다.
...
Intent intent = new Intent(Intent.ACTION_PICK);
 intent.setData(ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
         startActivityForResult(intent, 0);
...


2) onActivityResult 를 이용해서, 선택한 Contact 값을 읽어 온다.
...
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK)
{
Cursor cursor = getContentResolver().query(data.getData(), 
new String[]{ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME
ContactsContract.CommonDataKinds.Phone.NUMBER}, null, null, null);
cursor.moveToFirst();
                  mName.setText(cursor.getString(0));        //이름 얻어오기
             mNumber.setText(cursor.getString(1));     //번호 얻어오기
            cursor.close();
}
super.onActivityResult(requestCode, resultCode, data);
}
...
신고
Posted by 구름같은사나이
2011.03.09 15:32
               락 스크린을 해지 시켜주는 코드 부분.


             KeyguardManager manager = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE);  
KeyguardLock lock = manager.newKeyguardLock(KEYGUARD_SERVICE);  
lock.disableKeyguard();  

               - 필요한 Permmision -

                <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
               
신고
Posted by 구름같은사나이

티스토리 툴바