سلام دوستان.
من برنامه ی دارم که باید داخل onNewIntent event اون مبلغی رو جهت شارژ کارت های دسفایر کم کنه. اگر موبایل یا تبلت NFC داشته باشه برنامه اجرا میشه. اما روی گوشی که NFC نداره سریعا بسته میشه. نکنه بخاطر مجوز NFC که داخل manifest میذاریم هستش؟این تابع رو هم نوشتم ضمنا:
private boolean hasNFCSensor(){
PackageManager packMan = getPackageManager();
return packMan.hasSystemFeature(PackageManager.FEATURE_NFC);
}
//.................................................
private boolean checkEnableNFC()
{
Boolean enableNFC = false;
nfcManager = (NfcManager) this.getSystemService(Context.NFC_SERVICE);
nfcAdapter = nfcManager.getDefaultAdapter();
if(hasNFCSensor())
{
if (!nfcAdapter.isEnabled())
{
//Yes NFC is not available
// Toast.makeText(getApplicationContext(), "لطفا NFC را انتخاب کنید و دکمه برگشت را برای ورود مجدد به برنامه لمس نمایید", Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), "NFC is off.", Toast.LENGTH_LONG).show();
showDialogAskShowSetting();
}
else
{
enableNFC = true;
}
}
else
{
Toast.makeText(getApplicationContext(), "دستگاه شما قادر به پشتیبانی از NFC نیست", Toast.LENGTH_LONG).show();
}
return enableNFC;
}
//..............................................
public void showDialogAskShowSetting()
{
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setMessage("NFC فعال نیست.آیا می خواهید آن را فعال نمایید؟");
builder.setCancelable(false);
builder.setPositiveButton("بله", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
startActivity(new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS));
}
});
builder.setNegativeButton("خیر", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}//end showDialogAskShowSetting method
//.................................................. ..