$lang['tuto'] = "ਟਿ utorial ਟੋਰਿਅਲਸ"; ?> ਸੈਮਸੰਗ ਵਾਚ 6 ਲਈ WearOS ਦੇ

ਸੈਮਸੰਗ ਵਾਚ 6 ਲਈ WearOS ਦੇ ਸਟਾਰਟ ਐਕਸਰਸਾਈਜ਼ ਨਾਲ ਗੁੰਮ ਅਨੁਮਤੀ ਦੇ ਮੁੱਦੇ ਨੂੰ ਹੱਲ ਕਰਨਾ

Temp mail SuperHeros
ਸੈਮਸੰਗ ਵਾਚ 6 ਲਈ WearOS ਦੇ ਸਟਾਰਟ ਐਕਸਰਸਾਈਜ਼ ਨਾਲ ਗੁੰਮ ਅਨੁਮਤੀ ਦੇ ਮੁੱਦੇ ਨੂੰ ਹੱਲ ਕਰਨਾ
ਸੈਮਸੰਗ ਵਾਚ 6 ਲਈ WearOS ਦੇ ਸਟਾਰਟ ਐਕਸਰਸਾਈਜ਼ ਨਾਲ ਗੁੰਮ ਅਨੁਮਤੀ ਦੇ ਮੁੱਦੇ ਨੂੰ ਹੱਲ ਕਰਨਾ

WearOS ਹੈਲਥ ਸਰਵਿਸਿਜ਼ API ਵਿੱਚ ਅਨੁਮਤੀ ਦੇ ਮੁੱਦਿਆਂ ਨੂੰ ਹੱਲ ਕਰਨਾ

WearOS ਲਈ ਐਪਾਂ ਦਾ ਵਿਕਾਸ ਕਰਨਾ, ਖਾਸ ਤੌਰ 'ਤੇ Samsung Watch 6 ਲਈ, ਤੰਦਰੁਸਤੀ ਅਤੇ ਸਿਹਤ ਗਤੀਵਿਧੀਆਂ ਨੂੰ ਟਰੈਕ ਕਰਨ ਲਈ ਵਧੀਆ ਮੌਕੇ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਹਾਲਾਂਕਿ, ਹੈਲਥ ਸਰਵਿਸਿਜ਼ API ਦੇ ਨਾਲ ਕੰਮ ਕਰਨ ਨਾਲ ਕਈ ਵਾਰ ਅਚਾਨਕ ਚੁਣੌਤੀਆਂ ਪੈਦਾ ਹੋ ਸਕਦੀਆਂ ਹਨ, ਖਾਸ ਤੌਰ 'ਤੇ ਇਜਾਜ਼ਤ ਦੇ ਪ੍ਰਬੰਧਨ ਦੇ ਆਲੇ-ਦੁਆਲੇ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਸਟਾਰਟ ਐਕਸਰਸਾਈਜ਼ ਵਿਧੀ ਦੀ ਵਰਤੋਂ ਕਰਦਿਆਂ ਇੱਕ ਅਭਿਆਸ ਸ਼ੁਰੂ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਸਮੇਂ ਇੱਕ ਤਾਜ਼ਾ ਮੁੱਦਾ ਉੱਠਦਾ ਹੈ।

ਇਹ ਗਲਤੀ, ਗੁੰਮ ਅਨੁਮਤੀਆਂ ਨਾਲ ਸਬੰਧਤ, ਕੁਝ ਮਹੀਨੇ ਪਹਿਲਾਂ ਮੌਜੂਦ ਨਹੀਂ ਸੀ, ਜੋ ਸੁਝਾਅ ਦਿੰਦੀ ਹੈ ਕਿ ਇਹ ਤੁਹਾਡੇ ਪ੍ਰੋਜੈਕਟ ਦੀਆਂ ਲਾਇਬ੍ਰੇਰੀਆਂ ਵਿੱਚ ਕਿਸੇ WearOS ਅੱਪਡੇਟ ਜਾਂ ਤਬਦੀਲੀਆਂ ਕਾਰਨ ਹੋ ਸਕਦੀ ਹੈ। ਸਹੀ ਅਨੁਮਤੀ ਜੋ ਸਮੱਸਿਆ ਦਾ ਕਾਰਨ ਬਣ ਰਹੀ ਹੈ, ਗਲਤੀ ਸੁਨੇਹੇ ਵਿੱਚ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਪਛਾਣਿਆ ਨਹੀਂ ਗਿਆ ਹੈ, ਜਿਸ ਨਾਲ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਇਸ ਨੂੰ ਠੀਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਵਿੱਚ ਉਲਝਣ ਪੈਦਾ ਹੋ ਜਾਂਦੀ ਹੈ।

ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿ ਸਾਰੀਆਂ ਲੋੜੀਂਦੀਆਂ ਇਜਾਜ਼ਤਾਂ ਮੈਨੀਫੈਸਟ ਵਿੱਚ ਸਹੀ ਢੰਗ ਨਾਲ ਘੋਸ਼ਿਤ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ ਅਤੇ ਐਪ ਰਨਟਾਈਮ 'ਤੇ ਉਹਨਾਂ ਲਈ ਬੇਨਤੀ ਕਰਦੀ ਹੈ। ਇੱਕ ਨਾਜ਼ੁਕ ਅਨੁਮਤੀ ਗੁਆਉਣ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਐਪ ਅਭਿਆਸ ਸ਼ੁਰੂ ਕਰਨ ਵਿੱਚ ਅਸਫਲ ਹੋ ਸਕਦੀ ਹੈ, ਉਪਭੋਗਤਾ ਨੂੰ ਇੱਕ ਨਿਰਾਸ਼ਾਜਨਕ ਗਲਤੀ ਅਤੇ ਕੋਈ ਸਪੱਸ਼ਟ ਹੱਲ ਨਹੀਂ ਛੱਡਦਾ।

ਇਸ ਲੇਖ ਵਿੱਚ, ਅਸੀਂ ਪੜਚੋਲ ਕਰਾਂਗੇ ਕਿ ਇਹ ਤਰੁੱਟੀ ਕਿਉਂ ਵਾਪਰਦੀ ਹੈ, ਕਿਹੜੀਆਂ ਅਨੁਮਤੀਆਂ ਦੀ ਜਾਂਚ ਕਰਨ ਦੀ ਲੋੜ ਹੈ, ਅਤੇ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਸਟਾਰਟ ਐਕਸਰਸਾਈਜ਼ ਵਿਧੀ WearOS ਦੇ ਨਾਲ Samsung Watch 6 'ਤੇ ਸੁਚਾਰੂ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰਦੀ ਹੈ, ਤੁਹਾਡੇ ਐਪ ਨੂੰ ਕਿਵੇਂ ਸੰਰਚਿਤ ਕਰਨਾ ਹੈ। ਆਉ ਇਸ ਮੁੱਦੇ ਨੂੰ ਕੁਸ਼ਲਤਾ ਨਾਲ ਨਿਦਾਨ ਅਤੇ ਹੱਲ ਕਰਨ ਵਿੱਚ ਡੁਬਕੀ ਕਰੀਏ।

ਹੁਕਮ ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਨ
intersect() ਦੋ ਸੈੱਟਾਂ ਦੇ ਇੰਟਰਸੈਕਸ਼ਨ ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਕੋਟਲਿਨ ਵਿੱਚ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਅਭਿਆਸਾਂ ਲਈ ਸਿਰਫ਼ ਸਮਰਥਿਤ ਡਾਟਾ ਕਿਸਮਾਂ ਨੂੰ ਹੀ ਮੰਨਿਆ ਜਾਂਦਾ ਹੈ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਇਹ ਕਸਰਤ ਸੰਰਚਨਾ ਲਈ ਅਸਮਰਥਿਤ ਕਿਸਮਾਂ ਨੂੰ ਫਿਲਟਰ ਕਰਨ ਲਈ ਲਾਗੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।
createMilestone() ਇਹ ਵਿਧੀ ਅਭਿਆਸ ਲਈ ਇੱਕ ਮੀਲ ਪੱਥਰ ਟੀਚਾ ਬਣਾਉਂਦਾ ਹੈ। ਇਹ ਹੈਲਥ ਸਰਵਿਸਿਜ਼ API ਲਈ ਖਾਸ ਹੈ ਅਤੇ ਵਿਕਾਸਕਾਰ ਨੂੰ ਸਮੇਂ-ਸਮੇਂ 'ਤੇ ਟੀਚੇ ਨਿਰਧਾਰਤ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਕਸਰਤ ਦੌਰਾਨ ਦੂਰੀ ਦੇ ਮੀਲਪੱਥਰ ਲਈ ਥ੍ਰੈਸ਼ਹੋਲਡ ਸੈੱਟ ਕਰਨਾ।
createOneTimeGoal() ਹੈਲਥ ਸਰਵਿਸਿਜ਼ API ਦਾ ਹਿੱਸਾ, ਇਹ ਕਮਾਂਡ ਇੱਕ ਵਾਰ ਕਸਰਤ ਦਾ ਟੀਚਾ ਬਣਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰਦੀ ਹੈ। ਉਦਾਹਰਨ ਵਿੱਚ, ਇਹ ਸੈਸ਼ਨ ਦੇ ਦੌਰਾਨ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਇੱਕ ਕੈਲੋਰੀ-ਬਰਨਿੰਗ ਟੀਚਾ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ।
DataTypeCondition() ਇਸ ਕੰਸਟਰਕਟਰ ਦੀ ਵਰਤੋਂ ਕਸਰਤ ਦੇ ਟੀਚੇ ਲਈ ਇੱਕ ਸਥਿਤੀ ਬਣਾਉਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਡੇਟਾ ਦੀ ਕਿਸਮ (ਜਿਵੇਂ ਕਿ ਦੂਰੀ ਜਾਂ ਕੈਲੋਰੀ) ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੇ ਹੋਏ ਅਤੇ ਇਸਨੂੰ ਸੈੱਟ ਥ੍ਰੈਸ਼ਹੋਲਡ ਨਾਲ ਕਿਵੇਂ ਤੁਲਨਾ ਕੀਤੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ। ਸਿਹਤ ਟਰੈਕਿੰਗ ਮਾਪਦੰਡਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਲਈ ਜ਼ਰੂਰੀ।
startExercise() ਇਹ ਵਿਧੀ WearOS ਵਿੱਚ ਇੱਕ ਅਭਿਆਸ ਸੈਸ਼ਨ ਦੀ ਸ਼ੁਰੂਆਤ ਨੂੰ ਚਾਲੂ ਕਰਦੀ ਹੈ। ਇਹ ExerciseClient ਕਲਾਸ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਅਤੇ ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰਦਾ ਹੈ ਕਿ ਉਪਭੋਗਤਾ ਦੀ ਕਸਰਤ ਪ੍ਰਦਾਨ ਕੀਤੀ ਸੰਰਚਨਾ ਅਤੇ ਟੀਚਿਆਂ ਦੇ ਅਧਾਰ ਤੇ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ।
requestPermissions() ਉਪਭੋਗਤਾ ਤੋਂ ਰਨਟਾਈਮ ਅਨੁਮਤੀਆਂ ਦੀ ਬੇਨਤੀ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਇਹ WearOS ਐਪਾਂ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿਉਂਕਿ ਸਿਹਤ-ਟਰੈਕਿੰਗ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਲਈ ਸਰੀਰ ਦੇ ਸੈਂਸਰਾਂ ਤੱਕ ਪਹੁੰਚ ਅਤੇ ਸਰਗਰਮੀ ਪਛਾਣ ਵਰਗੀਆਂ ਸੰਵੇਦਨਸ਼ੀਲ ਇਜਾਜ਼ਤਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
checkSelfPermission() ਇਹ ਕਮਾਂਡ ਜਾਂਚ ਕਰਦੀ ਹੈ ਕਿ ਐਪ ਨੂੰ ਕੋਈ ਖਾਸ ਇਜਾਜ਼ਤ ਦਿੱਤੀ ਗਈ ਹੈ ਜਾਂ ਨਹੀਂ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ ਕਿ ਐਪ ਸਿਰਫ਼ ਲੋੜੀਂਦੀਆਂ ਇਜਾਜ਼ਤਾਂ ਦੀ ਪੁਸ਼ਟੀ ਹੋਣ ਤੋਂ ਬਾਅਦ ਹੀ ਕਾਰਵਾਈਆਂ (ਜਿਵੇਂ ਕਿ ਅਭਿਆਸ ਸ਼ੁਰੂ ਕਰਨਾ) ਨਾਲ ਅੱਗੇ ਵਧਦਾ ਹੈ।
onTransact() ਐਂਡਰੌਇਡ ਬਾਇੰਡਰ ਫਰੇਮਵਰਕ ਵਿੱਚ ਲੈਣ-ਦੇਣ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਇੱਕ ਨਿਮਨ-ਪੱਧਰੀ ਸਿਸਟਮ ਕਾਲ। ਇਹ ਕਮਾਂਡ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ ਜਦੋਂ ਅਭਿਆਸ ਸ਼ੁਰੂ ਕਰਨਾ ਇੱਕ ਗੁੰਮ ਅਨੁਮਤੀ ਦੇ ਕਾਰਨ ਅਸਫਲ ਹੁੰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਸੁਰੱਖਿਆ ਅਪਵਾਦ ਹੁੰਦਾ ਹੈ।

WearOS ਅਨੁਮਤੀ ਗਲਤੀ ਅਤੇ ਕੋਡ ਹੱਲ ਨੂੰ ਸਮਝਣਾ

ਪ੍ਰਦਾਨ ਕੀਤੇ ਗਏ ਕੋਡ ਹੱਲ ਗੁੰਮ ਅਨੁਮਤੀ ਗਲਤੀ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਤਿਆਰ ਕੀਤੇ ਗਏ ਹਨ ਜੋ ਸੈਮਸੰਗ ਵਾਚ 6 ਵਰਗੇ WearOS ਡਿਵਾਈਸਾਂ 'ਤੇ ਹੈਲਥ ਸਰਵਿਸਿਜ਼ API ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਅਭਿਆਸ ਸ਼ੁਰੂ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਸਮੇਂ ਵਾਪਰਦੀ ਹੈ। ਗਲਤੀ ਇਸ ਲਈ ਹੁੰਦੀ ਹੈ ਕਿਉਂਕਿ ਸਰੀਰ ਦੇ ਸੈਂਸਰ, ਸਥਾਨ, ਅਤੇ ਹੋਰਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ ਖਾਸ ਅਨੁਮਤੀਆਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਸਿਹਤ ਨਾਲ ਸਬੰਧਤ ਡੇਟਾ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਸੰਭਾਲਿਆ ਨਹੀਂ ਜਾ ਰਿਹਾ ਹੈ। ਤਰੀਕਿਆਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਜਿਵੇਂ ਕਿ ਖੁਦ ਦੀ ਇਜਾਜ਼ਤ ਦੀ ਜਾਂਚ ਕਰੋ ਅਤੇ ਅਨੁਮਤੀਆਂ ਦੀ ਬੇਨਤੀ ਕਰੋ, ਕੋਡ ਜਾਂਚ ਕਰਦਾ ਹੈ ਕਿ ਅਭਿਆਸ ਸ਼ੁਰੂ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਐਪ ਨੂੰ ਲੋੜੀਂਦੀਆਂ ਇਜਾਜ਼ਤਾਂ ਦਿੱਤੀਆਂ ਗਈਆਂ ਹਨ ਜਾਂ ਨਹੀਂ।

ਕੋਟਲਿਨ ਵਿੱਚ ਲਿਖਿਆ ਪਹਿਲਾ ਹੱਲ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਰਨਟਾਈਮ ਅਨੁਮਤੀ ਬੇਨਤੀਆਂ ਨੂੰ ਮਾਡਿਊਲਰ ਅਤੇ ਮੁੜ ਵਰਤੋਂ ਯੋਗ ਤਰੀਕੇ ਨਾਲ ਕਿਵੇਂ ਸੰਭਾਲਣਾ ਹੈ। ਦ checkAndRequestPermissions ਫੰਕਸ਼ਨ ਲੋੜੀਂਦੀਆਂ ਅਨੁਮਤੀਆਂ ਨੂੰ ਫਿਲਟਰ ਕਰਦਾ ਹੈ, ਇਹ ਜਾਂਚ ਕਰਦਾ ਹੈ ਕਿ ਕੀ ਕੋਈ ਗੁੰਮ ਹੈ ਜਾਂ ਨਹੀਂ। ਜੇਕਰ ਅਨੁਮਤੀਆਂ ਨੂੰ ਅਸਵੀਕਾਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਇਹ ਉਹਨਾਂ ਨੂੰ ਫਰੈਗਮੈਂਟ ਦੀ ਬੇਨਤੀ ਪਰਮਿਸ਼ਨ ਵਿਧੀ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਬੇਨਤੀ ਕਰਦਾ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਐਪ ਤਾਂ ਹੀ ਅੱਗੇ ਵਧਦਾ ਹੈ ਜੇਕਰ ਸਾਰੀਆਂ ਅਨੁਮਤੀਆਂ ਸਹੀ ਢੰਗ ਨਾਲ ਦਿੱਤੀਆਂ ਗਈਆਂ ਹਨ, ਨੂੰ ਰੋਕਦਾ ਹੈ ਸੁਰੱਖਿਆ ਅਪਵਾਦ ਜਦੋਂ ਕਸਰਤ ਸ਼ੁਰੂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਤਾਂ ਸੁੱਟੇ ਜਾਣ ਤੋਂ।

ਦੋਵਾਂ ਲਿਪੀਆਂ ਵਿੱਚ, ਦ ਕਸਰਤ ਸ਼ੁਰੂ ਕਰੋ ਫੰਕਸ਼ਨ ਹੈਲਥ ਸਰਵਿਸਿਜ਼ API ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਇੱਕ ਕਸਰਤ ਸੈਸ਼ਨ ਸ਼ੁਰੂ ਕਰਨ ਦੀ ਕੁੰਜੀ ਹੈ। ਵਿਧੀ ਪ੍ਰਦਾਨ ਕੀਤੀ ਸੰਰਚਨਾ ਦੇ ਅਧਾਰ ਤੇ ਕਸਰਤ ਸ਼ੁਰੂ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੀ ਹੈ। ਜੇਕਰ ਕੋਈ ਅਨੁਮਤੀਆਂ ਗੁੰਮ ਹਨ, ਤਾਂ ਇਹ ਅਪਵਾਦ ਨੂੰ ਫੜਦਾ ਹੈ ਅਤੇ ਉਪਭੋਗਤਾ ਨੂੰ ਇੱਕ ਸੰਦੇਸ਼ ਦੇ ਨਾਲ ਫੀਡਬੈਕ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ ਜਿਸ ਵਿੱਚ ਦੱਸਿਆ ਗਿਆ ਹੈ ਕਿ ਕਿਹੜੀ ਇਜਾਜ਼ਤ ਗੁੰਮ ਹੈ। ਇਹ ਪਹੁੰਚ ਨਾ ਸਿਰਫ਼ ਉਪਭੋਗਤਾ ਅਨੁਭਵ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਂਦਾ ਹੈ ਬਲਕਿ ਇਹ ਵੀ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਅਭਿਆਸ ਉਦੋਂ ਤੱਕ ਸ਼ੁਰੂ ਨਹੀਂ ਹੋਵੇਗਾ ਜਦੋਂ ਤੱਕ ਸਾਰੀਆਂ ਲੋੜੀਂਦੀਆਂ ਇਜਾਜ਼ਤਾਂ ਨਹੀਂ ਦਿੱਤੀਆਂ ਜਾਂਦੀਆਂ।

ਦੂਜਾ ਹੱਲ, ਜੋ ਜਾਵਾ ਵਿੱਚ ਲਿਖਿਆ ਗਿਆ ਹੈ, ਸਹੀ ਅਨੁਮਤੀ ਦੇ ਪ੍ਰਬੰਧਨ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਇੱਕ ਸਮਾਨ ਪਹੁੰਚ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ, ਪਰ ਇਹ ਵਰਤਦਾ ਹੈ ਸਰਗਰਮੀ ਕੰਪੈਟ ਰਨਟਾਈਮ 'ਤੇ ਇਜਾਜ਼ਤਾਂ ਦੀ ਬੇਨਤੀ ਕਰਨ ਲਈ। ਇਹ ਵਿਧੀ Android ਗਤੀਵਿਧੀਆਂ ਦੇ ਅੰਦਰ ਅਨੁਮਤੀਆਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ ਖਾਸ ਹੈ, ਇਸ ਨੂੰ WearOS ਐਪਾਂ ਨਾਲ ਕੰਮ ਕਰਨ ਵਾਲੇ ਡਿਵੈਲਪਰਾਂ ਲਈ ਆਦਰਸ਼ ਬਣਾਉਂਦੀ ਹੈ ਜਿਨ੍ਹਾਂ ਨੂੰ ਸੈਂਸਰ ਅਤੇ ਟਿਕਾਣਾ ਪਹੁੰਚ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਸਕ੍ਰਿਪਟ ਲਚਕਦਾਰ ਹੈ ਅਤੇ ਵੱਖ-ਵੱਖ ਐਪ ਢਾਂਚੇ ਲਈ ਵਿਆਪਕ ਉਪਯੋਗਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹੋਏ, ਟੁਕੜਿਆਂ ਅਤੇ ਗਤੀਵਿਧੀਆਂ ਦੋਵਾਂ ਵਿੱਚ ਵਰਤੋਂ ਲਈ ਆਸਾਨੀ ਨਾਲ ਅਨੁਕੂਲਿਤ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ। ਦੋਵੇਂ ਹੱਲ ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰਦੇ ਹਨ ਕਿ ਸੰਭਾਵੀ ਅਨੁਮਤੀ ਦੇ ਮੁੱਦਿਆਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਅਨੁਕੂਲਿਤ ਤਰੀਕਿਆਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ, ਅਭਿਆਸਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਸ਼ੁਰੂ ਕੀਤਾ ਗਿਆ ਹੈ।

WearOS ਹੈਲਥ ਸਰਵਿਸਿਜ਼ API ਵਿੱਚ ਗੁੰਮ ਇਜਾਜ਼ਤ ਗਲਤੀ ਨੂੰ ਠੀਕ ਕਰਨਾ

ਇਹ ਹੱਲ Android ਵਿਕਾਸ ਲਈ Kotlin ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ, WearOS ਐਪਾਂ ਲਈ ਉਚਿਤ ਅਨੁਮਤੀ ਹੈਂਡਲਿੰਗ ਅਤੇ API ਸੰਰਚਨਾ 'ਤੇ ਧਿਆਨ ਕੇਂਦਰਿਤ ਕਰਦਾ ਹੈ।

// Import necessary libraries
import android.Manifest
import android.content.pm.PackageManager
import androidx.core.content.ContextCompat
import androidx.health.services.client.HealthServicesClient
import androidx.health.services.client.data.ExerciseConfig
import androidx.health.services.client.data.DataType
import androidx.fragment.app.Fragment
import android.widget.Toast
// Ensure permissions are granted before starting exercise
fun checkAndRequestPermissions(fragment: Fragment) {
    val permissions = arrayOf(
        Manifest.permission.BODY_SENSORS,
        Manifest.permission.ACTIVITY_RECOGNITION,
        Manifest.permission.ACCESS_FINE_LOCATION
    )
    val missingPermissions = permissions.filter {
        ContextCompat.checkSelfPermission(fragment.requireContext(), it)
        == PackageManager.PERMISSION_DENIED
    }
    if (missingPermissions.isNotEmpty()) {
        fragment.requestPermissions(missingPermissions.toTypedArray(), PERMISSION_REQUEST_CODE)
    }
}
// Call startExercise after permission checks
fun startWearExercise(healthServicesClient: HealthServicesClient, config: ExerciseConfig) {
    try {
        healthServicesClient.exerciseClient.startExercise(config)
        Toast.makeText(context, "Exercise started!", Toast.LENGTH_SHORT).show()
    } catch (e: SecurityException) {
        Toast.makeText(context, "Missing permissions: ${e.message}", Toast.LENGTH_LONG).show()
    }
}
// Constant to define request code
private const val PERMISSION_REQUEST_CODE = 1001

Android ਹੈਲਥ ਸਰਵਿਸਿਜ਼ API ਦੇ ਨਾਲ WearOS ਵਿੱਚ ਅਨੁਮਤੀਆਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਵਿਕਲਪਿਕ ਪਹੁੰਚ

ਇਹ ਦੂਜਾ ਹੱਲ ਜਾਵਾ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਅਤੇ ਇਜਾਜ਼ਤਾਂ ਦੀ ਬੇਨਤੀ ਕਰਨ ਅਤੇ WearOS 'ਤੇ ਹੈਲਥ ਸਰਵਿਸਿਜ਼ API ਨਾਲ ਅਭਿਆਸ ਸ਼ੁਰੂ ਕਰਨ ਦਾ ਇੱਕ ਹੋਰ ਤਰੀਕਾ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਦਾ ਹੈ।

// Import statements
import android.Manifest;
import android.content.pm.PackageManager;
import androidx.core.app.ActivityCompat;
import androidx.health.services.client.HealthServicesClient;
import androidx.health.services.client.data.ExerciseConfig;
import androidx.health.services.client.data.DataType;
import android.widget.Toast;
// Check permissions before exercise starts
public void checkPermissions(Activity activity) {
    String[] permissions = {
        Manifest.permission.BODY_SENSORS,
        Manifest.permission.ACTIVITY_RECOGNITION,
        Manifest.permission.ACCESS_FINE_LOCATION
    };
    for (String permission : permissions) {
        if (ActivityCompat.checkSelfPermission(activity, permission) == PackageManager.PERMISSION_DENIED) {
            ActivityCompat.requestPermissions(activity, permissions, 1001);
        }
    }
}
// Start exercise after checking permissions
public void startExercise(HealthServicesClient client, ExerciseConfig config) {
    try {
        client.getExerciseClient().startExercise(config);
        Toast.makeText(context, "Exercise started successfully!", Toast.LENGTH_SHORT).show();
    } catch (SecurityException e) {
        Toast.makeText(context, "Permissions missing: " + e.getMessage(), Toast.LENGTH_LONG).show();
    }
}
// Request permissions if not granted
public static final int PERMISSION_REQUEST_CODE = 1001;

WearOS ਸਿਹਤ ਸੇਵਾਵਾਂ ਵਿੱਚ ਅਨੁਮਤੀਆਂ ਅਤੇ API ਅੱਪਡੇਟਾਂ ਦੀ ਪੜਚੋਲ ਕਰਨਾ

WearOS 'ਤੇ ਹੈਲਥ ਸਰਵਿਸਿਜ਼ API ਨਾਲ ਕੰਮ ਕਰਦੇ ਸਮੇਂ, ਖਾਸ ਤੌਰ 'ਤੇ Samsung Watch 6 ਵਰਗੀਆਂ ਡਿਵਾਈਸਾਂ 'ਤੇ, ਇਹ ਧਿਆਨ ਵਿੱਚ ਰੱਖਣਾ ਜ਼ਰੂਰੀ ਹੈ ਕਿ WearOS ਅੱਪਡੇਟ ਜਾਂ API ਤਬਦੀਲੀਆਂ ਨਵੀਆਂ ਲੋੜਾਂ ਪੇਸ਼ ਕਰ ਸਕਦੀਆਂ ਹਨ। ਡਿਵੈਲਪਰ ਆਪਣੀ ਐਪ ਜਾਂ ਸਿਸਟਮ ਸੌਫਟਵੇਅਰ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਤੋਂ ਬਾਅਦ ਅਨੁਮਤੀ ਨਾਲ ਸਬੰਧਤ ਸਮੱਸਿਆਵਾਂ ਦਾ ਸਾਹਮਣਾ ਕਰ ਸਕਦੇ ਹਨ। ਇਹ ਇਸ ਲਈ ਹੈ ਕਿਉਂਕਿ ਆਧੁਨਿਕ ਐਂਡਰੌਇਡ ਸਿਸਟਮ ਸੰਵੇਦਨਸ਼ੀਲ ਡੇਟਾ ਐਕਸੈਸ ਜਿਵੇਂ ਕਿ ਸਥਾਨ, ਸੈਂਸਰ, ਅਤੇ ਗਤੀਵਿਧੀ ਮਾਨਤਾ ਦੇ ਨਾਲ ਵਧੇਰੇ ਪ੍ਰਤਿਬੰਧਿਤ ਹੁੰਦੇ ਜਾ ਰਹੇ ਹਨ।

ਮੁੱਖ ਖੇਤਰਾਂ ਵਿੱਚੋਂ ਇੱਕ ਜਿਸ 'ਤੇ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਧਿਆਨ ਦੇਣ ਦੀ ਲੋੜ ਹੈ ਉਹ ਹੈ ਸਹੀ ਅਨੁਮਤੀ ਪ੍ਰਬੰਧਨ। ਐਪ ਦੇ ਮੈਨੀਫੈਸਟ ਵਿੱਚ ਅਨੁਮਤੀਆਂ ਦਾ ਐਲਾਨ ਕਰਨਾ ਅਤੇ ਰਨਟਾਈਮ 'ਤੇ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਉਹਨਾਂ ਦੀ ਬੇਨਤੀ ਕਰਨਾ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਲੋੜੀਂਦੀ ਅਨੁਮਤੀ ਨਾ ਮਿਲਣ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਤਰੁਟੀਆਂ ਹੋ ਸਕਦੀਆਂ ਹਨ ਸੁਰੱਖਿਆ ਅਪਵਾਦ ਹੈਲਥ ਸਰਵਿਸਿਜ਼ API ਵਿੱਚ ਦੇਖਿਆ ਗਿਆ ਹੈ, ਜੋ ਹਮੇਸ਼ਾ ਇਹ ਨਹੀਂ ਦੱਸ ਸਕਦਾ ਹੈ ਕਿ ਕਿਹੜੀ ਇਜਾਜ਼ਤ ਗੁੰਮ ਹੈ। ਰਨਟਾਈਮ ਜਾਂਚਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨਾ, ਜਿਵੇਂ ਕਿ ਅਸੀਂ ਪਹਿਲਾਂ ਚਰਚਾ ਕੀਤੀ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਅਨੁਮਤੀ ਇਨਕਾਰ ਕਰਨ ਕਾਰਨ ਐਪ ਟੁੱਟੇ ਨਹੀਂ, ਅਤੇ ਇਸ ਦੀ ਬਜਾਏ, ਉਪਭੋਗਤਾ ਨੂੰ ਕਾਰਵਾਈ ਲਈ ਪ੍ਰੇਰਦਾ ਹੈ।

ਧਿਆਨ ਦੇਣ ਯੋਗ ਇੱਕ ਹੋਰ ਪਹਿਲੂ WearOS ਐਪਸ ਵਿੱਚ ਸਹੀ ਤਰੁੱਟੀ ਨੂੰ ਸੰਭਾਲਣ ਦੀ ਮਹੱਤਤਾ ਹੈ। ਕਿਉਂਕਿ WearOS ਡਿਵਾਈਸਾਂ ਸੰਵੇਦਨਸ਼ੀਲ ਸਿਹਤ ਡੇਟਾ 'ਤੇ ਨਿਰਭਰ ਕਰਦੀਆਂ ਹਨ, ਇਹਨਾਂ ਅਨੁਮਤੀਆਂ ਨੂੰ ਐਕਸੈਸ ਕਰਨ ਵਿੱਚ ਕੋਈ ਵੀ ਅਸਫਲਤਾ ਉਪਭੋਗਤਾ ਅਨੁਭਵ ਨੂੰ ਵਿਗਾੜ ਸਕਦੀ ਹੈ। ਫਾਲਬੈਕ ਵਿਧੀ ਨੂੰ ਲਾਗੂ ਕਰਨ ਜਾਂ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਸਪਸ਼ਟ ਸੰਦੇਸ਼ ਦਿਖਾਉਣ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਜੋ ਉਹ ਜਾਣਦੇ ਹਨ ਕਿ ਨਿਰਵਿਘਨ ਸੰਚਾਲਨ ਲਈ ਕਿਹੜੀਆਂ ਅਨੁਮਤੀਆਂ ਜ਼ਰੂਰੀ ਹਨ। ਮਜਬੂਤ ਅਨੁਮਤੀ ਦੇ ਪ੍ਰਬੰਧਨ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣਾ ਨਾ ਸਿਰਫ਼ ਸੁਰੱਖਿਆ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਂਦਾ ਹੈ, ਸਗੋਂ ਇਸ ਵਰਗੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਐਪਸ ਦੀ ਕਾਰਗੁਜ਼ਾਰੀ ਨੂੰ ਵੀ ਵਧਾਉਂਦਾ ਹੈ ਕਸਰਤ ਟਰੈਕਿੰਗ ਅਤੇ ਰੀਅਲ-ਟਾਈਮ ਸੈਂਸਰ ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ।

WearOS ਹੈਲਥ ਸਰਵਿਸਿਜ਼ API ਅਤੇ ਇਜਾਜ਼ਤ ਮੁੱਦਿਆਂ ਬਾਰੇ ਆਮ ਸਵਾਲ

  1. ਦਾ ਮਕਸਦ ਕੀ ਹੈ startExercise ਢੰਗ?
  2. startExercise ਵਿਧੀ ਇੱਕ ਕਸਰਤ ਸੈਸ਼ਨ ਸ਼ੁਰੂ ਕਰਦੀ ਹੈ, ਉਪਭੋਗਤਾ ਸਿਹਤ ਡੇਟਾ ਜਿਵੇਂ ਕਿ ਦਿਲ ਦੀ ਗਤੀ ਅਤੇ WearOS ਐਪਾਂ ਵਿੱਚ ਦੂਰੀ ਨੂੰ ਟਰੈਕ ਕਰਦੀ ਹੈ।
  3. ਮੈਂ ਕਿਉਂ ਏ SecurityException ਇੱਕ ਕਸਰਤ ਸ਼ੁਰੂ ਕਰਨ ਵੇਲੇ?
  4. SecurityException ਸੰਭਾਵਤ ਤੌਰ 'ਤੇ ਗੁੰਮ ਇਜਾਜ਼ਤਾਂ ਦੇ ਕਾਰਨ ਹੈ। ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਸਾਰੀਆਂ ਲੋੜੀਂਦੀਆਂ ਇਜਾਜ਼ਤਾਂ, ਜਿਵੇਂ ਕਿ BODY_SENSORS ਅਤੇ ACTIVITY_RECOGNITION, ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਘੋਸ਼ਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ ਰਨਟਾਈਮ 'ਤੇ ਬੇਨਤੀ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
  5. ਮੈਂ WearOS ਵਿੱਚ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਇਜਾਜ਼ਤਾਂ ਦੀ ਬੇਨਤੀ ਕਿਵੇਂ ਕਰ ਸਕਦਾ ਹਾਂ?
  6. ਤੁਸੀਂ ਵਰਤ ਸਕਦੇ ਹੋ requestPermissions ਤੁਹਾਡੇ ਐਪ ਦੇ ਟੁਕੜੇ ਜਾਂ ਗਤੀਵਿਧੀ ਵਿੱਚ ਫੰਕਸ਼ਨ ਨੂੰ ਉਪਯੋਗਕਰਤਾ ਨੂੰ ਲੋੜੀਂਦੀਆਂ ਇਜਾਜ਼ਤਾਂ ਦੇਣ ਲਈ ਪ੍ਰੇਰਿਤ ਕਰਨ ਲਈ।
  7. ਜੇਕਰ ਮੈਨੀਫੈਸਟ ਵਿੱਚ ਕੋਈ ਅਨੁਮਤੀ ਗੁੰਮ ਹੈ ਤਾਂ ਮੈਨੂੰ ਕੀ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ?
  8. ਲੋੜੀਂਦੀ ਇਜਾਜ਼ਤ ਸ਼ਾਮਲ ਕਰੋ, ਜਿਵੇਂ ਕਿ ACCESS_FINE_LOCATION, ਆਪਣੇ ਮੈਨੀਫੈਸਟ ਵਿੱਚ ਅਤੇ ਜਾਂਚ ਕਰੋ ਕਿ ਕੀ ਇਹ ਤੁਹਾਡੇ ਕੋਡ ਦੇ ਅੰਦਰ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਬੇਨਤੀ ਕੀਤੀ ਗਈ ਹੈ।
  9. WearOS ਫਿਟਨੈਸ ਟਰੈਕਿੰਗ ਵਿੱਚ GPS ਮਹੱਤਵਪੂਰਨ ਕਿਉਂ ਹੈ?
  10. GPS ਐਪ ਨੂੰ ਰਨਿੰਗ ਜਾਂ ਸਾਈਕਲਿੰਗ ਵਰਗੇ ਅਭਿਆਸਾਂ ਦੌਰਾਨ ਉਪਭੋਗਤਾ ਦੀ ਦੂਰੀ ਅਤੇ ਸਥਾਨ ਨੂੰ ਟਰੈਕ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਜੋ ਕਿ ਸਹੀ ਕਸਰਤ ਡੇਟਾ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ।

ਨਿਰਵਿਘਨ ਸੰਚਾਲਨ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਅੰਤਿਮ ਕਦਮ

WearOS ਦੀ ਹੈਲਥ ਸਰਵਿਸਿਜ਼ API ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ ਗੁੰਮ ਅਨੁਮਤੀ ਗਲਤੀ ਨੂੰ ਹੱਲ ਕਰਨਾ ਸੈਮਸੰਗ ਵਾਚ 6 ਵਰਗੀਆਂ ਡਿਵਾਈਸਾਂ 'ਤੇ ਫਿਟਨੈਸ ਐਪਸ ਨੂੰ ਵਿਕਸਤ ਕਰਨ ਲਈ ਜ਼ਰੂਰੀ ਹੈ। ਇਜਾਜ਼ਤ ਬੇਨਤੀਆਂ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਸੰਭਾਲਣਾ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਤੁਹਾਡੀ ਐਪ ਅਚਾਨਕ ਕ੍ਰੈਸ਼ਾਂ ਤੋਂ ਬਿਨਾਂ ਸੁਚਾਰੂ ਢੰਗ ਨਾਲ ਚੱਲਦੀ ਹੈ।

ਕਸਰਤ ਦੇ ਟੀਚਿਆਂ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਕੌਂਫਿਗਰ ਕਰਕੇ ਅਤੇ ਰਨਟਾਈਮ 'ਤੇ ਅਨੁਮਤੀਆਂ ਦੀ ਜਾਂਚ ਕਰਕੇ, ਡਿਵੈਲਪਰ ਇਹ ਯਕੀਨੀ ਬਣਾ ਸਕਦੇ ਹਨ ਕਿ ਐਪ ਅਭਿਆਸਾਂ ਦੌਰਾਨ ਸਹੀ ਅਤੇ ਨਿਰਵਿਘਨ ਡੇਟਾ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਇਹ ਉਪਭੋਗਤਾ ਅਨੁਭਵ ਅਤੇ WearOS ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੁਆਰਾ ਪ੍ਰਦਾਨ ਕੀਤੀਆਂ ਗਈਆਂ ਸਿਹਤ ਸੇਵਾਵਾਂ ਦੀ ਭਰੋਸੇਯੋਗਤਾ ਦੋਵਾਂ ਨੂੰ ਵਧਾਉਂਦਾ ਹੈ।

ਸਰੋਤ ਅਤੇ ਹਵਾਲੇ
  1. ਇਹ ਲੇਖ WearOS ਅਤੇ Android ਹੈਲਥ ਸਰਵਿਸਿਜ਼ API ਵਰਤੋਂ ਸੰਬੰਧੀ ਜਾਣਕਾਰੀ ਦੇ ਆਧਾਰ 'ਤੇ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਸੀ। Android ਵਿਕਾਸ ਵਿੱਚ ਅਨੁਮਤੀ ਪ੍ਰਬੰਧਨ ਬਾਰੇ ਹੋਰ ਵੇਰਵਿਆਂ ਲਈ, ਅਧਿਕਾਰਤ ਦਸਤਾਵੇਜ਼ਾਂ 'ਤੇ ਜਾਓ: Android ਅਨੁਮਤੀਆਂ ਦੀ ਸੰਖੇਪ ਜਾਣਕਾਰੀ .
  2. ਕਸਰਤ ਕੌਂਫਿਗਰੇਸ਼ਨ ਅਤੇ ਵਧੀਆ ਅਭਿਆਸਾਂ ਸਮੇਤ WearOS ਲਈ ਹੈਲਥ ਸਰਵਿਸਿਜ਼ API ਨੂੰ ਸੰਭਾਲਣ ਬਾਰੇ ਸੂਝ ਲਈ, WearOS ਡਿਵੈਲਪਰ ਗਾਈਡ ਵੇਖੋ: WearOS ਹੈਲਥ ਸਰਵਿਸਿਜ਼ API .
  3. WearOS ਵਿੱਚ ਕਸਰਤ ਟਰੈਕਿੰਗ ਲਈ ਨਮੂਨਾ ਸੰਰਚਨਾ ਅਤੇ ਕੋਡ ਸਨਿੱਪਟ ਐਂਡਰਾਇਡ ਡਿਵੈਲਪਰ ਕਮਿਊਨਿਟੀ ਵਿੱਚ ਚਰਚਾਵਾਂ ਅਤੇ ਅੱਪਡੇਟਾਂ 'ਤੇ ਆਧਾਰਿਤ ਸਨ: ਸਟੈਕ ਓਵਰਫਲੋ ਚਰਚਾ .