Kişisel Sayfaları
İlgi Alanları
İş Tecrubesi
Eğitim Geçmişi
Sertifikalar & Başarılar
Kullanıcıya ait test sonucu bulunmamaktadır.
Dil Becerileri
Son Forum Aktiviteleri
2Sensörlü Kilit Uygulaması
Merhabalar. Telefonu cebinize koyduğunuzda tuşların otomatik kilitlenmesi için bir uygulama geliştiriyorum. Uygulama "Yakınlık (Proximity) Sensörü"nü kullanıyor. Sensörde değişiklik algılandığında "mDevicePolicyManager.lockNow();" komutu çalıştırılarak titreşim ile tuşların kilitlendiğine dair bir geri bildirim veriliyor. Sorularım ise:
- 1. Uygulama sadece kilitleme yapabiliyor. Unlock ile ilgili kayda değer bir sonuç bulamadım. Sensörün önü açıldığında ekranı geri açması için ne yapabilirim?
- 2. Tuşlar kilitlendikten sonra her sensör değişikliğinde titreşim alıyorum. Bu da ekran kilitli olsa dahi uygulamanın ekranı tekrar kilitlediğini gösteriyor. Bu durumu nasıl düzeltebilirim?
MainActivity.java
[code]
package com.example.cepkilden;
import com.example.cepkilden.R;
import android.app.Activity;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.os.Vibrator;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {private static final int ADMIN_INTENT = 15;
private static final String description = "Ekranı kilitleyebilmek için yetkilendirin";
private DevicePolicyManager mDevicePolicyManager;
private ComponentName mComponentName;@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDevicePolicyManager = (DevicePolicyManager)getSystemService(
Context.DEVICE_POLICY_SERVICE);
mComponentName = new ComponentName(MainActivity.this, MyAdminReceiver.class);
Button btnEnableAdmin = (Button) findViewById(R.id.btnEnable);
Button btnDisableAdmin = (Button) findViewById(R.id.btnDisable);
btnEnableAdmin.setOnClickListener(MainActivity.this);
btnDisableAdmin.setOnClickListener(MainActivity.this);
sensorBilgisi = (TextView)findViewById(R.id.textView1);
sensorBilgisi.setText("Sensor bilgisi alınıyor..");
sensorYoneticisi = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
yakinSensoru = sensorYoneticisi.getDefaultSensor(Sensor.TYPE_PROXIMITY);
sensorYoneticisi.registerListener(sensorDinleyicisi,yakinSensoru,
SensorManager.SENSOR_DELAY_FASTEST);
}@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnEnable:
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mComponentName);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,description);
startActivityForResult(intent, ADMIN_INTENT);
break;case R.id.btnDisable:
mDevicePolicyManager.removeActiveAdmin(mComponentName);
Toast.makeText(getApplicationContext(), "Admin registration removed", Toast.LENGTH_SHORT).show();
break;
}
}@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == ADMIN_INTENT) {
if (resultCode == RESULT_OK) {
Toast.makeText(getApplicationContext(), "Yönetici olarak kaydedildi", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getApplicationContext(), "Yönetici olarak kaydedilemedi", Toast.LENGTH_SHORT).show();
}
}
}SensorManager sensorYoneticisi;
Sensor yakinSensoru;
TextView sensorBilgisi;
SensorEventListener sensorDinleyicisi = new SensorEventListener(){@Override
public void onAccuracyChanged(Sensor arg0, int arg1) {
}@Override
public void onSensorChanged(SensorEvent event) {
if(event.sensor.getType() == Sensor.TYPE_PROXIMITY){
sensorBilgisi.setText("Yakınlık:"+ String.valueOf(event.values[0]));
if (String.valueOf(event.values[0])=="0.0")
{
boolean isAdmin = mDevicePolicyManager.isAdminActive(mComponentName);
if (isAdmin) {
mDevicePolicyManager.lockNow();
Vibrator vib = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vib.vibrate(200);}
else{
Toast.makeText(getApplicationContext(), "Yönetici olarak kayıtlı değil", Toast.LENGTH_SHORT).show();}
}
}
}
};
}[/code]
MyAdminReceiver.java
[code]
package com.example.cepkilden;
import android.app.admin.DeviceAdminReceiver;
public class MyAdminReceiver extends DeviceAdminReceiver{
}
[/code]
activity_main.xml
[code]
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" ><TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="56dp"
android:layout_marginTop="36dp"
android:text="@string/textView1" /><Button
android:id="@+id/btnEnable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:layout_marginTop="22dp"
android:text="Enable" /><Button
android:id="@+id/btnDisable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/btnEnable"
android:layout_below="@+id/btnEnable"
android:text="Disable" /></RelativeLayout>
[/code]
AndroidManifest.xml
[code]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.cepkilden"
android:versionCode="1"
android:versionName="1.0" ><uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.WAKE_LOCK"/><application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.cepkilden.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver
android:name="MyAdminReceiver"
android:permission="android.permission.BIND_DEVICE_ADMIN" >
<meta-data
android:name="android.app.device_admin"
android:resource="@xml/admin" /><intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
</receiver>
</application></manifest>
[/code]
Sensörlü Kilit Uygulaması
Proje bağlantısı: https://www.mediafire.com/?o0uu2y39wl72huw